摘要: 编译过程大体包括预处理,编译,汇编,链接四大步,其中预处理主要是宏定义替换,文件包含,条件编译。用#ifndef机构可以防止以下情况:即一个文件A包含了一个头文件C,同时另一个文件B也包含了头文件C,而且文件A包含了头文件B,若用#ifndef结构可以避免在编译的时候报错,但是若头文件里有定义(包括... 阅读全文
posted @ 2014-08-18 18:08 lianjiehere 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 对于使用尖括号( ),预处理程序cpp在系统预设包含文件目录(如/usr/include)中搜寻相应的文件,而对于使用双引号(“ ”),cpp在当前目录中搜寻头文件,这个选项的作用是告诉cpp,如果在当前目录中没有找到需要的文件,就到指定的dirname目录中去寻找。在程序设计中,如果我们需要的这种... 阅读全文
posted @ 2014-08-18 17:55 lianjiehere 阅读(1083) 评论(0) 推荐(0) 编辑
摘要: 调试的问题出现这个问题还蛮奇怪的,a.h需包含statistic.h, main.c需包含a.h和statistic.h,导致了statistic.h重复包含,hsdm_queue_ctr重复定义。关于重复包含和重复定义的问题,可根据下面的分析得到认识。为什么用了宏名字定义检测头文件的重复包含可还是... 阅读全文
posted @ 2014-08-18 17:47 lianjiehere 阅读(318) 评论(0) 推荐(0) 编辑