gpt4 book ai didi

c - 使用##运算符

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

<分区>

我有一个代码说:

#include<stdio.h>

typedef struct string{
char *ch_ptr;
}str_t;

#define newdef(a,b) \
char a ## sumthing[b * sizeof(str_t)]; \
str_t *a = (str_t *)a ## sumthing

main(){
newdef(input,5);
/* some lines of code */
}

代码的可选更改:

#include<stdio.h>

typedef struct string{
char *ch_ptr;
}str_t;

#define newdef(a,b) \
char a ## sumthing[b * sizeof(str_t)]; \
str_t *var1 = (str_t *)a ## sumthing

main(){
newdef(input,5)="Hello";
printf("%s\n",input);
/* some lines of code */
}

谁能解释一下这段代码是什么意思?此代码中的 input 是字符串(希望不是)还是变量?如果是变量,为什么编译器不抛出未声明的变量错误?

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