1.4、goto、void、extern、sizeof剖析
2017-02-09 22:51
281 查看
1、goto破坏了c语言顺序执行的规则
2、void修饰函数返回值和参数仅为了表示无
3、没有void的标尺,无法在内存中裁剪出void对应的变量(灰色替代)
4、编译器厂商规定的void为1个字节(不可信)
5、C语言规定只有相同类型的指针才可以相互赋值
6、void*指针作为左值用于"接收"任意类型的指针
7、void*指针作为右值赋值给其他指针时需要强制类型转换
8、int* P = (int *)malloc( sizeof(int) ) (malloc返回的是void*类型的指针,所以这里要强制类型转换)
9、代码规范,要有很好的移植性
10、extern用于声明外部定义的变量和函数
11、extern用于"告诉"编译器用C方式编译
12、 extern "C"
{
int f(int a, int b)
{
return a+b;
}
} (g++可以通过,gcc不通过)
13、sizeof是编译器的内置指示符,不是函数
14、sizeof用于"计算"相应实体所占的内存大小
15、sizeof的值在编译期间就已确定
2、void修饰函数返回值和参数仅为了表示无
3、没有void的标尺,无法在内存中裁剪出void对应的变量(灰色替代)
4、编译器厂商规定的void为1个字节(不可信)
5、C语言规定只有相同类型的指针才可以相互赋值
6、void*指针作为左值用于"接收"任意类型的指针
7、void*指针作为右值赋值给其他指针时需要强制类型转换
8、int* P = (int *)malloc( sizeof(int) ) (malloc返回的是void*类型的指针,所以这里要强制类型转换)
9、代码规范,要有很好的移植性
10、extern用于声明外部定义的变量和函数
11、extern用于"告诉"编译器用C方式编译
12、 extern "C"
{
int f(int a, int b)
{
return a+b;
}
} (g++可以通过,gcc不通过)
13、sizeof是编译器的内置指示符,不是函数
14、sizeof用于"计算"相应实体所占的内存大小
15、sizeof的值在编译期间就已确定
相关文章推荐
- 专题一关键字的剖析----4.goto,void,extern,sizeof的分析
- goto,void,extern,sizeof分析
- 【C语言学习】04__goto,void,extern,sizeof分析
- 04-goto.void.extern.sizeof
- goto,void,extern,sizeof分析
- goto,void,extern,sizeof分析
- c语言学习笔记(2)goto,void,extern和sizeof分析
- goto void extern sizeof
- goto, void, extern, sizeof分析
- void,extern,sizeof 关键字分析
- C语言中的Void,Extern,sizeof的理解
- 为什么sizeof取不到extern的数组大小
- 使用GCC4.8 编译android内核提示warning: argument to ‘sizeof’ in ‘void* memset(void*, int, size_t)’
- goto和void
- C编译器剖析_1.4 UCC编译器预览_UCC的使用
- 《C++笔记》 Part6 浅析extern的作用比较分析与数组相关的sizeof和strlen
- 读c语言深度剖析 -- void
- 第8课 - goto 和 void 分析
- C语言总结之数据类型,sizeof,void*总结
- c语言中static、extern、void的重载