1. 如何引用一个已经定义过的全局变量?
如果定义的全局变量在同一文件中,则可以直接引用。
如过引用的文件在其他文件中,则有两种方式来引用,一个是通过*.h文件,另一个是通过关键字extern来声明。
注意:定义和声明的区别?
定义一个变量是是在内存中分配一定的空间;声明一个变量是告诉编译器有这个变量的存在。
2. 全局变量可不可以定义在可被多个.c文件中包含的头文件中?为什么?
不可以,全局变量作用与整个模块中,只能被定义一次。如果引用多个.c文件包含.h 文件,则就意味着被定义了多次。
如果全局变量在.h文件中被定义为static则可以被多个.c文件引用。因为静态全局变量只作用与整个文件中。
3. continue,break,return的用法
continue,break,return的区别
- continue:结束本次循环,执行下次循环
- break:跳出循环,也就是结束循环
- return:返回主调函数
break语句为什么不能使用在if语句中?
break语句可以使用在for,while ,swich结构中,但不能使用在if语句结构中。
break跳出的是循环结构,也就是跳出最接近的break语句那层的循环结构。因为if不是循环结构,所以,当break用在循环结构中嵌套的if语句时,其跳出的不是if语句,而是循环结构。
break语句用在循环结构中跳出的是当前一层的循环。
4.数据结构中字节对齐:
前一个字节数要和后一个字节数对齐(如果前一个字节数大于后一个字节数,则前一个就”不用对齐”),所有的字节数加一起要能整除结构中的最大字节数。
数据结构中嵌套数据结构,则嵌套的数据结构按该结构中的最大字节数对齐。计算时要加上该数据结构的大小。
注意:
- 字节对其的目的是为了提高对数据的访问速度。
- union结构大小的计算规则:
- 其结构的大小是最大成员的整数倍
- 其结构的大小是联合体中每个成员数据类型的整数倍。
例如: typedef union {
long a;
char b[6];
}un; sizeof(un) = _ 8__