gpt4 book ai didi

在 C 中编译时间可变大小的字符串文字

转载 作者:太空宇宙 更新时间:2023-11-04 03:04:33 24 4
gpt4 key购买 nike

DD 应该做什么?

如果

#define HEADING_TITLE_PROJECT_NAME  "<= Version Maintenance Based On Compiled DateTime =>"
#define SIZE_OF_HEADER_FOR_DECORATION_PURPOSE sizeof(HEADING_TITLE_PROJECT_NAME)
#define DD ????
#define HEADING "\r\n"DD"\r\n"HEADING_TITLE_PROJECT_NAME"\r\n"DD"\r\n"

我想得到 HEADING 字符串文字如下:

<==================================================>
<= Version Maintenance Based On Compiled DateTime =>
<==================================================>

我放置的 = 符号或任何内容将在 <== ... ==> 内重复以填充 HEADING_TITLE_PROJECT_NAME 空间。

可以这样做还是其他方式。我只想在编码时更改 HEADING_TITLE_PROJECT_NAME,除此之外别无其他。只是想想它是否可以完成:)

<==编辑开始==>有点像

#define DD\
char * get()\
{\
char arr[100] = '\0';\
for (int i=0; i < SIZE_OF_HEADER_FOR_DECORATION_PURPOSE - 1; i++)\
{\
arr[i] = "=";\
}\
return arr;\
}

<==编辑结束==>

最佳答案

不幸的是,在标准 C 预处理器中没有自动生成 DD 的方法,只要您想按照在 HEADING 宏定义中使用的方式使用它即可.

只要您坚持按照当前定义的方式定义 HEADING,我只能建议使用半自动方法 :)。手动明确定义 DD

#define HEADING_TITLE_PROJECT_NAME "<= Version Maintenance Based On Compiled DateTime =>"
#define DD "<==================================================>"

然后添加

STATIC_ASSERT(sizeof HEADING_TITLE_PROJECT_NAME == sizeof DD);

就在它下面(带有您最喜欢的 STATIC_ASSERT 实现)。这样,DD 长度的任何差异都会立即触发错误并迫使开发人员更新 DD

关于在 C 中编译时间可变大小的字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7208180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com