C语言使用技巧
【return error信息】
[02/28/2022]:今天看code注意到一种返回result的方法。
if(*** !=0)
result = -__LINE__;
goto faliture;
faliture:
printf("test fail(%d)\n", result);
这种写法的好处是可以很快知道报错的code位置。
【预编译】
#define 机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏(macro)或定义宏( defined macro) 。下面是宏的声明方式:
#define name(parameter-list) stuff
其中, parameter-list (参数列表)是二个由逗号分隔的符号列表,它们可能出现在stuff 中。参数列表的左括号必须与name 紧邻。如果两者之间有任何空白存在,参数列表就会被解释为stuff 的一部分。
有两种方法可以实现将参数插入到字符串常量中。
- 利用相邻字符串常量自动合并的特点,插入到字符串中。
#define PRINT(FORMAT ,VALUE) \
printf( "The value is " FORMAT "\n", VALUE )
• •
PRINT ( "%d" , x+3);
这种技巧只有当字符串常量作为宏参数给出时才能使用。
2. 利用#argument来实现,它会把argument翻译成"argument"
#define PRINT(FORMAT,VALUE) \
printf("The value of "#VALUE" is FORMAT\n", VALUE)
PRINT ( "%d" , x + 3 );
它将产生下面的输出:
The value of x + 3 is 25
【编译时打印宏定义的值】
#define PRINT_MACRO_HELPER(x) #x
#define PRINT_MACRO(x) #x"="PRINT_MACRO_HELPER(x)
#define TEST 16
#pragma message(PRINT_MACRO(TEST));
#pragma是最复杂的预处理指令,它的作用是指定编译器的状态或者指示编译器完成一些特点动作。
一般格式为#pragma para, para为参数。

浙公网安备 33010602011771号