随笔

三年经验的C需要懂的问题

2019-02-22  本文已影响138人  Wales_Kuo

前言:

2013年3月写的文章。那会的工作主要是做一些通信设备上的底层软件,所以会深入的了解C的相关底层内容。这是那时候写的三年的C经验需要知道的事情。请不要问我这些问题的答案。

正文:

  1. double free是什么问题?申请地址与释放地址不一致会有什么问题?
  2. main函数最多有几个参数?各是什么作用?
  3. crt是什么?编译器是怎么样连接crt的(描述cl或者gcc方式)
  4. c语言程序的入口函数是哪个?(绝对不是main)
  5. 请描述不使用main函数的情况先怎样设置程序入口函数?(描述cl或gcc中的一种)
  6. C++调用C函数时为什么要将C函数包含在extern “C”中?ABI是什么?
  7. 赋值运算符与位与运算符哪个优先级高?
  8. offset是怎样实现的?
  9. float型的数据怎么判断它是否等于0?
  10. 怎样声明函数可以写以下代码
fun()[0]();
  1. 如果有两个结构体要相互引用指针,应该怎么定义这两个结构体?
  2. 比较两个值是否相等时为什么要把常量写在前面?
  3. 请写出两种防止头文件重复引用的方法?
  4. extren时变量类型与定义是变量类型不一致会有什么问题?
    例如:
      file1.c            char array[512] = { 0 };
      file2.c            extern char *array ;
  1. 以下程序的输出结果是:
     int   i = 0;
     int   j = sizeof(i++);
     printf("i = %d j = %d\n", i, j);
  1. 请写一段可以反应volatile关键字作用的代码。
  2. 代码中还会对n进行加加吗?
      fun()
      {
            int n = 0;
            。。。。。。
            return n++;
      }
  1. 请解释C语言中最终要的两点:
    符号的连接性与作用域;
    变量的存储性与声明周期。
  2. 函数的可重入性是什么样的概念?
上一篇下一篇

猜你喜欢

热点阅读