gpt4 book ai didi

c - C 中指针类型转换的语法

转载 作者:行者123 更新时间:2023-11-30 14:47:12 24 4
gpt4 key购买 nike

我遇到了一个代码段,其中添加了修复程序以删除编译器警告。

之前:

int test;
SYSTEM_START_Function(0, &test);

之后:

int test;
SYSTEM_START_Function(0, &(char)test);

与:

static void SYSTEM_START_Function (UInt8 parameterSize, char* pointerToPassedParameters)
{
}

谁能告诉我这是正确的语法吗?如果是,请解释编译器将如何解释它。

最佳答案

由于 testint,因此 &test 是指向 int 的指针。您调用的函数需要在其第二个参数中包含一个指向 char 的指针。

用于将一种类型的事物转换为另一种类型的事物的 C 运算符是强制转换运算符。它的格式为 ( 类型名称 ) 表达式

指向char的指针的类型名称是char *。要获取 test 的地址并将其转换为指向 char 的指针,请编写:

(char *) &test

C 语言支持这种特殊的转换,但要遵守您正在使用的软件可能已经考虑到的各种注意事项。 (系统函数将任意对象视为字节序列的情况并不罕见。)但是,您应该意识到并非所有指针转换都是正确的 C。在转换为除指向字符对象的指针之外的指针类型之前,您应该了解C 关于指针转换的规则。

关于c - C 中指针类型转换的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51540688/

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