救赎自我- 发表于 2022-5-20 19:53:06

一道面试题 救命

大佬们麻烦看一下到底为啥有效为啥无效

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

人造人 发表于 2022-5-20 20:10:10

?
#if1
你确定?
确定字符f后面没有空格?

风车呼呼呼 发表于 2022-5-20 21:03:00

ABC

救赎自我- 发表于 2022-5-20 22:19:10

人造人 发表于 2022-5-20 20:10
?
#if1
你确定?


是的它的原试题就是这样的{:10_264:}

人造人 发表于 2022-5-20 23:09:58

救赎自我- 发表于 2022-5-20 22:19
是的它的原试题就是这样的

那么,这个程序是错误的
不是有效和无效,是错误

惊晓欲仙 发表于 2022-5-22 12:10:30

emmm,建议去综合交流区。或者你多发几次

救赎自我- 发表于 2022-5-22 17:39:14

人造人 发表于 2022-5-20 23:09
那么,这个程序是错误的
不是有效和无效,是错误

好滴 谢谢你

人造人 发表于 2022-5-22 17:47:46

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]
查看完整版本: 一道面试题 救命