首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C宏如何扩展C编程语言的语法和语义?

C宏如何扩展C编程语言的语法和语义?
EN

Stack Overflow用户
提问于 2022-05-21 12:04:35
回答 1查看 46关注 0票数 0

我正在读的第一本书说:

是编程语言中最有趣的发展之一,它创建了可扩展语言--在程序中可以更改其语法和语义的语言。最早也是最常见的语言扩展方案之一是宏定义。

C宏如何扩展C编程语言的语法和语义?

例如,这个宏:

代码语言:javascript
复制
#define BUFSIZE 100

当然,它似乎并没有扩展C编程语言的语法和语义。

请给出一个扩展C语言语法和语义的宏的例子(以及解释)。

1“解析、翻译和编译的理论”,第1卷,Aho和Ullman著,第58页。

EN

回答 1

Stack Overflow用户

发布于 2022-05-21 12:32:49

不确定是否可以将其视为“扩展”语法。C宏可以用“hacky方式”来获得一些不同的语法。

一个简单的例子:

代码语言:javascript
复制
#define startmain int main(){
#define endmain }
#define begin {
#define end }

这允许我们编写类似这样的程序(类似于Verilog语法)。

代码语言:javascript
复制
startmain
int i;
for(i=0; i<5; i++) begin
printf("%d\n",i);
end
endmain

但是当然,像LISP这样的其他语言有非常先进的宏系统,可以让你做得更多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72329371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档