gpt4 book ai didi

c - 函数参数中的隐式转换,这里面会发生什么?

转载 作者:行者123 更新时间:2023-11-30 18:07:05 25 4
gpt4 key购买 nike

我了解到函数的基本类型被提升为 int,float 被提升为 double,但是等等,如果我将 char 传递给函数,例如:


字符字符;
my_func(字符)



void my_func(字符缓冲区)

每次我引用 buffer 时它都是 int 吗???如果是,等等,我编写的所有将 buffer 引用为 char 的代码怎么样?它正在从 int 转换为 char 吗?指针、数组和结构体枚举 union 等又如何呢?我对此非常担心,因为我猜想使用其他类型代替 int 是一个错误,因为我所做的一切都会转换为 int。对吗?

非常感谢。

最佳答案

仅当您使用没有原型(prototype)的旧式代码(如果您的编译器支持)或使用 ... 可变参数函数时,函数调用中基本类型的提升才有意义。在您的情况下,您有一个原型(prototype),并且它匹配,因此没有转换或升级。

无论如何,提升仅适用于数字类型——它不适用于指针、数组、结构或 union 。

关于c - 函数参数中的隐式转换,这里面会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5011274/

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