gpt4 book ai didi

c - 关于 C 中存储类的使用

转载 作者:行者123 更新时间:2023-11-30 18:17:39 26 4
gpt4 key购买 nike

如果函数 int *check(register int,register int); 的参数的存储类声明为其他存储类,则以下代码将显示错误。

我在 Code::Blocks 10.05 IDE 上使用 GNU GCC 编译器 编译了此代码。错误背后的原因是什么?这是编译器特定错误还是一般错误?代码部分从这里开始:

int *check(register int, register int);

int main()
{
int *c;
c = check(10, 20);
printf("%d\n", c);
return 0;
}

int *check(register int i,register int j)
{
int *p = i;
int *q = j;
if(i >= 45)
return (p);
else
return (q);
}

最佳答案

int *check(register int i,register int j)
{
int *p=i;
int *q=j;

p qi j 的类型不匹配。也许你想要的是:

int *check(int i, int j)
{
int *p=&i;
int *q=&j;

更正:请注意,register 不能与 & 一起使用。此外,关键字register几乎没有什么用处,因为编译器通常会忽略它并自行进行优化。

关于c - 关于 C 中存储类的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17809086/

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