2015-11-07 60 views
0

我很好奇,除了可维护性之外,还有功能原型的任何实际优势。在这个阶段,我只能认为它对于阅读程序很有用,但不能找到关于执行是否因为原型而受到影响的信息。功能原型对性能有影响吗?

+0

如果您忽略了原型,而是在头文件中定义了一个函数,编译器可以选择内联这些函数,在这种情况下,程序的运行时性能可能会受到影响。受影响可能意味着*较慢*或可能意味着*较快*。这可能不是你想问的问题的答案。 dasblinkenlight对于单个文件程序的简单情况是正确的。 – tweej

回答

2

功能原型设计是否影响性能?

根本不是。函数原型只定义接口。它们不是可执行代码。可执行代码在于这些接口的实现。

0

DVDT,

将代码分离为单独的文件时,原型是非常有用的。此外,要在程序中使用函数库,通常需要为库中的函数创建原型。最后,一些编译器自上而下读取,因此必须将原型包含在文件的顶部以启用以错误顺序显示的函数才能工作。 (实际上不是“错”,只是针对该特定实例的顺序不同)。我在这个答案中对自己的定义也很自由。

严格来说,这些机制都是“执行”的一部分。

+0

感谢您的回复,但我仍然不确定原型设计是否会影响程序的性能。 – discipline

+0

我不认为它会,除非你打算使用它们来动态加载库或使用定义函数指针 - 但是在那时它们可能不会被认为是“原型”。 –

1

将原型与定义提前的定义相比在生成的代码中没有区别。

原型是编译器在调用点进行正确转换所必需的。一旦编译器完成后,原型就没有任何区别。

0

函数原型造成编译器将不正确的调用标记为函数。是的,“机器”效率不受影响。另一方面,程序员的生产力可能从了解潜在的问题源头中获益。