| マクロの再定義の実験 |
マクロの再定義を実験してみた。
自分の環境では、
再定義可能のパターンではコンパイルがとおり、
再定義不可のパターンでは、warning: "OBJ_LIKE" redefined 等のワーニングが出た。
以下、プログラム。(表示都合上全角)
/*
define_test.c
*/
#include <stdio.h> /* printf */
#include <stdlib.h> /* EXIT_SUCCESS */
#define OBJ_LIKE (1−1)
#define FUNC_LIKE(a) ( a )
int main(int argc, char *argv[])
{
#define OBJ_LIKE /* コメント */ (1−1) /* コメント */
// #define OBJ_LIKE (0) // 字句の並びが違う
// #define OBJ_LIKE (1 − 1) // 空白類が違う
#define FUNC_LIKE( a ) ( /* 空白類に注意 */ \
a /* 一部が別の行
*/ )
// #define FUNC_LIKE(a) ( ’a’ ) // 仮引数の使用法が違う
// #define FUNC_LIKE(b) ( b ) // 仮引数のつづりが違う
printf(”%d\n”, FUNC_LIKE(OBJ_LIKE));
return EXIT_SUCCESS;
}
|
2010年3月18日(木) 06:47 [ C言語 ]
この記事のURL / / |