![]() |
1
32
这个
根据C标准(C11,7.21.6.1p8格式化输入/输出功能):
C中的指针类型不需要具有相同的大小或相同的表示形式。
具有不同指针类型表示的实现的一个示例是Cray PVP,其中指针类型表示为64位
参见“Cray C/C++参考手册”,表3。在“9.1.2.2”中 http://docs.cray.com/books/004-2179-003/004-2179-003-manual.pdf |
![]() |
2
20
在C语言中,所有指针类型的表示形式都可能不同。所以,是的,
换句话说,在一般情况下,不同的指针类型具有不同的表示。
该语言指出,某些指针类型需要具有相同的表示,包括
|
![]() |
3
10
其他人已经充分解决了通过
具有未定义的行为。 这是因为 呼叫框布局 可能取决于每个参数的确切具体类型。为指针和非指针类型指定不同参数区域的ABI在现实生活中已经出现(例如,Motorola 68000希望您尽可能将指针保留在地址寄存器中,将非指针保留在数据寄存器中)。我不知道任何现实世界中的ABI会将不同的 指针,指针 类型,但这是允许的,我听到一个也不会感到惊讶。 |
![]() |
4
5
c11:7.21.6格式化输入/输出函数(p8):
|
![]() |
5
3
实际上,除了在古代的大型机/小型机上,不同的指针类型极不可能有不同的
尺寸
。然而,它们有不同之处
类型
,并符合规范
|
![]() |
6
3
均匀铸造至
C有两种指针:指向 物体 和指向 功能 .
任何
对象指针
可以转换为
转换为
指向函数的指针
到
考虑2021的系统,其中
C确实指明了(我的重点)
要打印函数指针,可以尝试:
C缺少真正通用的指针,也缺少打印函数指针的干净方法。 |
![]() |
Jiji · 将简单对象强制转换为简单的通用接口 6 年前 |
![]() |
tobeypeters · 反射铸造 6 年前 |
![]() |
Alex · 是否改为存储字符串的整数的通用ArrayList? 6 年前 |
![]() |
Kai · 如何在C#中转换会话中存储的词典? 6 年前 |
![]() |
Ján ЯabÄan · 布尔值到双精度的快速转换方法 6 年前 |