三年经验的C需要懂的问题
2019-02-22 本文已影响138人
Wales_Kuo
前言:
2013年3月写的文章。那会的工作主要是做一些通信设备上的底层软件,所以会深入的了解C的相关底层内容。这是那时候写的三年的C经验需要知道的事情。请不要问我这些问题的答案。
正文:
- double free是什么问题?申请地址与释放地址不一致会有什么问题?
- main函数最多有几个参数?各是什么作用?
- crt是什么?编译器是怎么样连接crt的(描述cl或者gcc方式)
- c语言程序的入口函数是哪个?(绝对不是main)
- 请描述不使用main函数的情况先怎样设置程序入口函数?(描述cl或gcc中的一种)
- C++调用C函数时为什么要将C函数包含在extern “C”中?ABI是什么?
- 赋值运算符与位与运算符哪个优先级高?
- offset是怎样实现的?
- float型的数据怎么判断它是否等于0?
- 怎样声明函数可以写以下代码
fun()[0]();
- 如果有两个结构体要相互引用指针,应该怎么定义这两个结构体?
- 比较两个值是否相等时为什么要把常量写在前面?
- 请写出两种防止头文件重复引用的方法?
- extren时变量类型与定义是变量类型不一致会有什么问题?
例如:
file1.c char array[512] = { 0 };
file2.c extern char *array ;
- 以下程序的输出结果是:
int i = 0;
int j = sizeof(i++);
printf("i = %d j = %d\n", i, j);
- 请写一段可以反应volatile关键字作用的代码。
- 代码中还会对n进行加加吗?
fun()
{
int n = 0;
。。。。。。
return n++;
}
- 请解释C语言中最终要的两点:
符号的连接性与作用域;
变量的存储性与声明周期。 - 函数的可重入性是什么样的概念?