🔴 include guard 生效之后

👁️ 0 人浏览 💬 0 人评论 ❤️ 添加收藏

(本条路线统一用 gcc -std=c11 -O0 编译)同一段内容写了两遍,两遍都带同一个 guard:

#include <stdio.h>

#ifndef ONCE_H
#define ONCE_H
static int marker = 1;
#endif

#ifndef ONCE_H          /* 第二次:宏已经定义过了,整段跳过 */
#define ONCE_H
static int marker = 2;  /* 没有 guard 的话这里会重复定义 */
#endif

int main(void) {
    printf("%d\n", marker);
    return 0;
}
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论