宏和预处理器之间的区别

h4c*_*k3d 14 c c-preprocessor

据我所知,#define blah 8是一个宏.而,#是预处理器指令.

我们可以说#include,#if,#ifdef等.也是宏,还是被称为其他东西?或者,宏只是用于#define语句的术语?

如果我错了,请纠正我.

Jam*_*lis 29

以...开头的行#预处理指令.它们是指示预处理器执行某些操作的指令.

#include,#if,#ifdef,#ifndef,#else,#elif,#endif,#define,#undef,#line,#error,和#pragma都是预处理指令.(仅包含的行#也是预处理指令,但它没有效果.)

#define blah 8是一个预处理指令,它不是宏. blah是一个宏.此#define预处理指令定义了blah一个名为对象的宏,该宏由令牌替换8.