c - 预期为 ‘uint32_t’ 但参数的类型为 ‘uint32_t *’

标签 c

我是 C 的新手,试图调用一个函数,但它给我错误,我无法理解为什么

int set_price(&colour->type.name);

它返回我 expected ‘uint32_t’ 但参数是 ‘uint32_t *’ 类型。警告:传递参数“int set_price”从指针生成整数而不进行强制转换

指针在哪里

house_list *colour = NULL;

和 名称在结构中定义为

uint32_t name;

接受原始函数

int set_price(uint32_t name)
{
/do something here/
}

我做错了什么?如果在结构成员中,name 被定义为 uint32_t,并且我定义了一个指针颜色,那么我认为我需要在 colour->type 之前使用 & 并在 name 之前使用点,不是吗?

谢谢

最佳答案

set_price(&colour->type.name);

去掉 & 你会没事的

set_price(colour->type.name);

set_price 需要一个整数作为参数,而不是指向整数的指针。

我建议您阅读 a good C book .

关于c - 预期为 ‘uint32_t’ 但参数的类型为 ‘uint32_t *’,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6778384/

相关文章:

c - ruby 1.8 中缺少函数

C 是否可以使用结构变量进行定义?

c - 如何从类型 `void*` 发送指向数组中元素的指针?

c - 将 super 终端上显示的数组值(来自微 Controller )存储到 PC 中的 Excel 表中

c - 隐式else编译器优化

android - 如何在 Android 中使用没有 Xamarin 的单声道运行 C# 代码?

c - 由索引引用时出现段错误

c - 赋值语句中右边的递增表达式是按什么顺序求值的?它是未定义的吗?

c - 用户输入的因素问题

c - 如何使 `make` 为文件夹中的每个 C 文件创建一个可执行文件?