一道面试题 救命
大佬们麻烦看一下到底为啥有效为啥无效6,以下有效的程序段时( )
#define TEST_MODE_1
#define TEST_MODE_2 ON
#ifndefTEST_MODE
#if1
(程序段A)
#endif
#ifdefTEST_MODE_1
(程序段B)
#endif
#if TEST_MODE_2==ON
(程序段C)
#else
(程序段D)
#endif
#endif ?
#if1
你确定?
确定字符f后面没有空格?
ABC 人造人 发表于 2022-5-20 20:10
?
#if1
你确定?
是的它的原试题就是这样的{:10_264:} 救赎自我- 发表于 2022-5-20 22:19
是的它的原试题就是这样的
那么,这个程序是错误的
不是有效和无效,是错误
emmm,建议去综合交流区。或者你多发几次 人造人 发表于 2022-5-20 23:09
那么,这个程序是错误的
不是有效和无效,是错误
好滴 谢谢你 A B C 有效
$ cat main.c
#define TEST_MODE_1
#define TEST_MODE_2 ON
#ifndef TEST_MODE
#if 1
int a;
#endif
#ifdef TEST_MODE_1
int b;
#endif
#if TEST_MODE_2 == ON
int c;
#else
int d;
#endif
#endif
$ gcc -E main.c
# 0 "main.c"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 0 "<command-line>" 2
# 1 "main.c"
int a;
int b;
int c;
$
页:
[1]