首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C-预处理宏,它将在标记之前/之后用另一个文本包装文本。

C-预处理宏,它将在标记之前/之后用另一个文本包装文本。
EN

Stack Overflow用户
提问于 2022-11-13 15:17:10
回答 2查看 44关注 0票数 -1

是否可以创建C预处理宏,允许我调用字符串上的方法(char[])。

例如:

代码语言:javascript
复制
char myStr[10];

int len = strlen(myStr);

将成为:

代码语言:javascript
复制
char myStr[10];
int len = myStr.len;

或者:

代码语言:javascript
复制
char myStr[10];
int len = LEN myStr;

C-preprocessor编辑:只是澄清一下,这个问题是关于而不是C语言本身的。对于所有意图和目的,可以用JavaScript、PHP或甚至纯文本替换上面的代码。

我要问的是,是否可以编写宏,在令牌之前或之后用其他文本包装文本。

一般来说,以下转变:

令牌文本=>包装文本包装

文本令牌 =>包装文本包装

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-14 07:36:30

No,预处理程序不能这样做:

令牌文本=>包装文本包装

文本令牌 =>包装文本包装

简单地说,它的替换功能仅包括在内,令牌需要成为一个标识符:

令牌 =>替换

令牌 '(‘参数(S) ')’=>替换为0到所有_argument(s)

见标准第6.10.3章。

您可能需要对其他宏处理器进行一些研究,例如从各自维基百科页面开始。请注意,在StackOverflow上,推荐是非主题的.

票数 2
EN

Stack Overflow用户

发布于 2022-11-14 08:14:54

代码语言:javascript
复制
#define strlen(str) str.len

int foo(char *str)
{
    size_t x = strlen(str);
}

https://godbolt.org/z/45xY1zzhd

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

https://stackoverflow.com/questions/74422210

复制
相关文章

相似问题

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