C ++中的宏指令和预处理程序指令有什么区别

时间:2013-01-06 18:36:45

标签: c++ macros c-preprocessor preprocessor-directive

  

可能重复:
  Difference between macro and preprocessor

我对C ++中的宏和预处理程序指令有疑问,它们之间有什么区别?好像他们或多或少相同?我试图在互联网上查找,但仍然无法理解,任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:9)

预处理程序指令是以#开头的任何语言功能,例如#if#pragma#include。在适当的编译器启动之前,它们被预处理器完全处理为一个单独的阶段。

宏是由#define定义的任何内容;它只是一种特殊的预处理器指令。

答案 1 :(得分:8)

宏是预处理程序指令的子集:

#define X

这是一个宏预处理程序指令。

#pragma once

这只是一个预处理程序指令。

宏以#define开头,定义将在预处理时间展开的元素。