我对C ++中的宏和预处理程序指令有疑问,它们之间有什么区别?好像他们或多或少相同?我试图在互联网上查找,但仍然无法理解,任何人都可以帮忙吗?
答案 0 :(得分:9)
预处理程序指令是以#
开头的任何语言功能,例如#if
,#pragma
,#include
。在适当的编译器启动之前,它们被预处理器完全处理为一个单独的阶段。
宏是由#define
定义的任何内容;它只是一种特殊的预处理器指令。
答案 1 :(得分:8)
宏是预处理程序指令的子集:
#define X
这是一个宏和预处理程序指令。
#pragma once
这只是一个预处理程序指令。
宏以#define
开头,定义将在预处理时间展开的元素。