我想要一些C预处理器指令的例子,例如:
#define pi 3.14
#define MAX 100
我只知道这一点。 我想知道更多关于预处理器指令的信息。
答案 0 :(得分:10)
最大的例子是
#include<stdio.h>
但是有相当数量。您还可以定义宏:
#define MAX(X,Y) (((X) > (Y)) ? (X) : (Y))
#ifndef A_H
#define A_H
// code
#endif
编译器定义了专有扩展,允许您提供处理指令:
#ifdef WIN32 // WIN32 is defined by all Windows 32 compilers, but not by others.
#include <windows.h>
#else
#include <unistd.h>
#endif
if语句也可用于评论:
#if 0
int notrealcode = 0;
#endif
我经常使用预处理器来进行调试构建:
#ifdef EBUG
printf("Debug Info");
#endif
$ gcc -DEBUG file.c //debug build
$ gcc file.c //normal build
正如其他人都指出的那样,有很多地方可以获得更多信息:
答案 1 :(得分:5)
您是否完全熟悉基本原理,例如正如wikipedia所述?或者你需要一个初级教程?或者什么?
答案 2 :(得分:4)
答案 3 :(得分:2)
处理器比#define要多得多。不要忘记#include和条件编译。
答案 4 :(得分:2)
最重要的一个:
#ifndef THIS_HEADER_H
#define THIS_HEADER_H
// Declarations go here
#endif //THIS_HEADER_H
这使得头文件不会多次包含在单个C文件中。
对于gcc来源,我喜欢使用__LINE__
,如:
printf("%s: %d: Some debug info\n", __func__, __LINE__);
用于调试目的。
答案 5 :(得分:1)
如果条件失败,这将停止编译。
#define WIDTH 10
#define HEIGHT 20
#if WIDTH < HEIGHT
# error "WIDTH must be greater than or equal to HEIGHT"
#endif