gpt4 book ai didi

c - 如何检查变量是否为 C 中的 "const"限定符类型?

转载 作者:太空狗 更新时间:2023-10-29 14:57:10 24 4
gpt4 key购买 nike

要检查的示例代码

#include<stdio.h>

int main(void)
{
const int i = 1;
printf("Variable i is %s\n",
__builtin_constant_p(i) ? "a const variable" : "not a const variable");
return 0;
}

输出:

Variable i is not a const variable

__builtin_constant_p() 不是确定变量是否为 const 类型的正确 API 吗?

最佳答案

您可以使用通用选择(自 C11 起):

#include <stdio.h> 

#define __is_constant_int(X) _Generic((&X), \
const int *: "a const int", \
int *: "a non-const int")

int main(void)
{
const int i = 1;
printf("Variable i is %s\n", __is_constant_int(i));
return 0;
}

关于c - 如何检查变量是否为 C 中的 "const"限定符类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36587437/

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