2013-01-25 83 views
0

说我有一个C头(对于某些库),它定义了一个枚举和一个将这样的枚举作为参数的函数。我可以编写自己的包含该头文件的代码并链接库,但编译器如何知道函数实际期望的int类型?如果我理解的很好,这个标准并不需要一个确定枚举类型的具体方法,所以......?C编译器如何计算如何编译f(枚举)?

在此先感谢。

+0

什么是“什么样的int”和“什么类型是枚举的基础?”你指的是不同编译器下的整数是不同的大小? –

回答

2

调用函数的代码和实现该函数的代码大概都与该枚举的声明共享一个通用头文件。由于它们相同,编译器会生成匹配的代码。

如果你混合使用&匹配编译器,那么在这种情况下你最终可能会遇到互操作性问题。

+0

希望编译器知道它在做什么,是的,问题更多的是针对不同编译器的情况。 – antony

+0

虽然混搭编译器还有很多其他问题。例如,如果每个int的大小不同,会怎样? –