标签:
【前言】
最近几个月在做一个C语言代码重构的项目,过程中也让我对之前在书本上学习到的东西有些补充和巩固,在本博中总结记录下,梳理下零碎的知识点和经验也加深印象,书写是为了更好地思考。平时也都是用印象笔记之类的自己写写笔记,今天整理成博客,以便自己以后回顾。
【正文】
/******************************************************************************* 头文件 test001.h *******************************************************************************/ #ifndef TEST001_H_INCLUDED //防止头文件重复引入 #define TEST001_H_INCLUDED /* * 在源码文件test001.c中:#define TEST001_GLOBAL_VALUE_DEFINE * 设置宏ifdef判断,如果是除test001.c外其他文件引入此头文件,则以下的变量声明和函数声明都会加extern修饰 * 声明为外部函数和全局变量 */ #ifdef TEST001_GLOBAL_VALUE_DEFINE #define TRNS_GLOBAL #define TRNS_GLOBAL_VAL(v) =(v) #else #define TRNS_GLOBAL extern #define TRNS_GLOBAL_VAL(v) #endif //函数声明 TRNS_GLOBAL void InitTest(void); TRNS_GLOBAL void eventStart(int* point); //变量声明 TRNS_GLOBAL double f_InitGetReq; TRNS_GLOBAL double f_ErrConfirm; #define BLM_SEND_BUFF_SIZE 12 #define BLM_RECV_BUFF_SIZE 128 #undef TRNS_GLOBAL #undef TRNS_GLOBAL_VAL #endif
//两种形式,定义Value是不可变的int型变量 int const Value = 10; const int Value = 10; //外部链接,可以仅作为声明,不作初始化 extern const int value = 20;
//两种形式,指针本身是常量,不可变 char * const pValue; const (char*) pValue; //两种形式,指针指向的对象是常量 const char * pValue; char const * pValue; //两者都是常量 const char * const pValue;
//参数在函数体内不可变(无意义,形参,传递的实参是一个拷贝) void function(const int Num); //参数指针指向的内容在函数体内不可变 void function(const char* Num); //参数指针是常量(无意义,该指针是形参) void function(char* const pValue); //引用参数在函数体内不可变 void function(const int& Num);
//表示函数返回值一个常量,只能被赋值给const修饰的同类型指针 const char* function(); const char* str = function(); char* str1 = function();//出错
标签:
原文地址:http://www.cnblogs.com/shuyingsoaring/p/5133888.html