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

4 c++ macros c-preprocessor preprocessor-directive

可能重复:
宏和预处理器之间的差异

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

Oli*_*rth 9

预处理指令是任何的与一个启动的语言特性#,例如#if,#pragma,#include.在适当的编译器启动之前,它们被预处理器完全处理为一个单独的阶段.

宏是由a定义的任何东西#define; 它只是一种特殊的预处理器指令.


Luc*_*ore 8

宏是预处理器指令的子集:

#define X
Run Code Online (Sandbox Code Playgroud)

这是一个宏一个预处理器指令.

#pragma once
Run Code Online (Sandbox Code Playgroud)

这只是一个预处理器指令.

宏开始#define并定义将在预处理时间扩展的元素.

  • 更确切地说:`#define`预处理器指令允许你创建一个宏,所以在`#define X 1234`中,`#define`是一个预处理器指令,```是一个宏,``1234`是一个宏替换列表. (3认同)