我正在读的第一本书说:
是编程语言中最有趣的发展之一,它创建了可扩展语言--在程序中可以更改其语法和语义的语言。最早也是最常见的语言扩展方案之一是宏定义。
C宏如何扩展C编程语言的语法和语义?
例如,这个宏:
#define BUFSIZE 100当然,它似乎并没有扩展C编程语言的语法和语义。
请给出一个扩展C语言语法和语义的宏的例子(以及解释)。
1“解析、翻译和编译的理论”,第1卷,Aho和Ullman著,第58页。
发布于 2022-05-21 12:32:49
不确定是否可以将其视为“扩展”语法。C宏可以用“hacky方式”来获得一些不同的语法。
一个简单的例子:
#define startmain int main(){
#define endmain }
#define begin {
#define end }这允许我们编写类似这样的程序(类似于Verilog语法)。
startmain
int i;
for(i=0; i<5; i++) begin
printf("%d\n",i);
end
endmain但是当然,像LISP这样的其他语言有非常先进的宏系统,可以让你做得更多。
https://stackoverflow.com/questions/72329371
复制相似问题