【发布时间】:2010-03-24 20:43:33
【问题描述】:
我有所有这些功能。
ssize_t fuc1(int var1, void *buf, size_t count);
int func2(char *charPtr, int mode, int dev);
short func3( long var2);
问题是 C 中的数据类型在不同的机器(64 位和 32 位)上编译时具有不同的大小。即使是 void* 也是如此。由于某些原因。我需要确保这些尺寸在每台机器(64 位和 32 位)上都相同。那么,我应该如何修改这些呢?
【问题讨论】:
-
如果您解释了为什么需要这些参数的大小跨平台相同,这可能会有所帮助。
-
@John:数据文件在一台机器上写入并在另一台机器上读取的可能性适中,到目前为止,这些芯片都是英特尔的,因此是小端的,但是 SPARC并且 PPC 和 big-endianness 没有跨越突触。
-
@Jonathan:他可能通过某种终结符和去终结符程序来运行这些东西(很糟糕地造了几个词)。当然,没有任何理由担心
void *的跨平台表示。