📜  C中带有示例的预定义宏(1)

📅  最后修改于: 2023-12-03 15:30:14.353000             🧑  作者: Mango

C中带有示例的预定义宏

在C语言中,预定义宏是在程序编译时由编译器自动定义的,可以提供有关编译环境及系统的信息。以下是常用的预定义宏:

FILE

__FILE__宏返回当前源文件的文件名。

示例:

#include <stdio.h>
int main() {
    printf("当前文件名是:%s\n", __FILE__);
    return 0;
}

输出结果为:

当前文件名是:test.c
LINE

__LINE__宏返回当前源文件的行号。

示例:

#include <stdio.h>
int main() {
    printf("当前行号是:%d\n", __LINE__);
    return 0;
}

输出结果为:

当前行号是:4
DATE

__DATE__宏返回当前编译时间的日期,格式为"MMM DD YYYY"(月份缩写+日期+年份)。

示例:

#include <stdio.h>
int main() {
    printf("当前日期是:%s\n", __DATE__);
    return 0;
}

输出结果为:

当前日期是:Oct 20 2022
TIME

__TIME__宏返回当前编译时间的时间,格式为"HH:MM:SS"(小时+分钟+秒)。

示例:

#include <stdio.h>
int main() {
    printf("当前时间是:%s\n", __TIME__);
    return 0;
}

输出结果为:

当前时间是:05:20:00
STDC

__STDC__宏返回一个整数,表示符合ISO/IEC 9899标准的编译器。

示例:

#include <stdio.h>
int main() {
    #ifdef __STDC__
    printf("符合C标准\n");
    #else
    printf("不符合C标准\n");
    #endif
    return 0;
}

输出结果为:

符合C标准
__cplusplus

__cplusplus宏用于C++,在C++程序中定义为1,表示C++程序。

示例:

#include <iostream>
int main() {
    #ifdef __cplusplus
    std::cout << "这是一个C++程序" << std::endl;
    #else
    printf("这不是一个C++程序\n");
    #endif
    return 0;
}

输出结果为:

这是一个C++程序

以上就是常用的预定义宏。通过使用预定义宏,可以使程序更加灵活,但是在使用时必须谨慎,避免定义同名变量或函数而导致的错误。