C语言读书笔记
2024-08-27 12:14:22
1.c语言中一共有32个关键字,分别是:
auto、int、double、long、char、short、float、unsigned、signed、sizeof、extern、
static、goto、if、else、struct、typedef、union、enum、switch、case、break、
default、do、while、const、register、volatile、return、void、for、continue。
注意:define、include这些带#号的都不是关键字,是预处理指令。
2.定义与声明:
定义 是创建一个对象并为之分配内存。 如:int a;
声明 是告诉编译器在程序中有这么一个对象,并没有分配内存。 如: extern int a;
3.对于register这个关键字定义的变量,不能进行取地址运算(&),因为对于x86架构来说,地址都是在内存中的,不是在寄存器中的,所以对寄存器进行取地址是没有意义的。并且应该注意的是给register定义的变量,应该赋一个比寄存器大小 要小的值。注意:register只是请求寄存器变量,但是不一定申请成功。
4.关键字static:=
对于static有两种用法:
a.修饰变量:对于静态全局变量和静态局部变量,都有一个特点就是不能被作用域外面,或外文件调用(即使是使用了extern也没用)。原因就是它是存储在静态存储区中的。对于函数中的静态局部变量还有一个问题,就是它是存在静态存储区的,即使函数结束栈区收回,这个变量的值也不改变。static int i=0; 这是一条初始化语句 而不是一条赋值语句 所以跟i=0不一样的。
b.修饰函数 :是定义为静态函数,使函数只能在文件内部使用,这样不同文件中的函数名就不怕重名了。原因也是相同的,就是static修饰的一切都是在静态存储区中的。
最新文章
- ABP框架理论学习之Hangfire集成
- 获取打开指定Action的所有应用包名
- oracle之集合操作函数---minus、union、intersect
- 当匿名类型遇上Distinct
- IM系统中聊天记录模块的设计与实现
- 如何设置SecureCRT通过代理连接SSH[转]
- [cocos2d] 显示状态与文字
- Mac OS X 开启SSH服务
- 第二十二章 Django会话与表单验证
- Node.js 系统
- Java集合框架详解(全)
- python 迭代器、生成器、枚举的使用
- hotspot目录结构
- erlang开发工具之intellij idea基本使用
- 入门Spring ioc
- 项目管理利器maven学习笔记(一):maven介绍及环境搭建
- C# winform 选择文件保存路径
- elasticSearch6源码分析(9)ActionModule
- 【LeetCode OJ】Longest Palindromic Substring
- 【nodeJs】nodejs