-3
Q
试图了解函数原型
A
回答
1
您应该始终声明并使用原型语法定义您的函数;这样做可以让编译器在函数调用中传递错误数量或类型参数的地方捕获错误。 C仍支持不使用原型语法的声明和定义,但仅支持古代代码库;你不应该使用旧的语法编写新的代码。
至于什么参数进入原型,完全取决于函数需要做什么。假设我正在为数学库中的pow()
函数写一个替换。我需要2个参数,一个是基础,接下来的是指数:
double myPow(double base, int exp); // declaration, prototype syntax
...
double myPow(double base, int exp) // definition, prototype syntax
{
...
}
您可以在声明中省略该参数名:
double myPow(double, int);
要紧的是数量和类型参数被指定。
旧式声明和定义是这样的:
double myPow(); // declaration, old syntax
...
double myPow(base, exp) // definition, old syntax
double base;
int exp;
{
...
}
你不选择你定义一个函数的参数的唯一时间是main
功能;在您定义main
的实现时,您无法确定要采用哪些参数。 main
或者不采用任何参数:int
类型和char **
的
int main(void)
或两个参数:
int main(int argc, char **argv)
的实现为main
可以提供额外的原型(如一些Unix发现三分之一char **envp
参数实现),但这仅限于实现 - 您不能为main
创建任意的接口。
相关问题
- 1. 了解C中的函数原型
- 2. 试图了解此函数:Array.prototype.reverse =函数(){
- 3. 了解JavaScript原型
- 4. 试图了解泛型
- 5. 学生试图了解回调函数
- 6. 试图了解dplyr函数 - group_by
- 7. 试图了解一个函数
- 8. 试图了解C++函数的代码
- 9. 试图了解com.adobe.net.URIEncodingBitmap的工作原理
- 10. 依赖倒置原则:试图了解
- 11. 试图了解JavaScript中的DRY原理
- 12. 试图了解/学习/使用继承与JavaScript。原型属性
- 13. 试图了解这个字符串到整数函数的工作原理
- 14. 了解Lambda函数的工作原理
- 15. 了解一个C原型
- 16. 了解原型和增强
- 17. node.js:了解对象原型
- 18. 了解WASM(WebAssembly)原型
- 19. 了解Javascript原型继承
- 20. 了解Javascript原型链
- 21. 试图理解对象原型
- 22. 试图了解
- 23. 试图了解sys_socketcall参数
- 24. 函数原型
- 25. Yii框架RBAC模型,试图了解
- 26. 试图了解MVC模型,建议?
- 27. 试图了解一个滚动型
- 28. 试图了解在html5lib测试ParseError数
- 29. 试图了解validates_presence_of测试失败的原因
- 30. 试图了解onPageScrolled
_您可以根据您的要求决定函数应具有哪些参数。如果你的工作是通过2个参数完成的,然后传递两个参数。参数数量不是预定义的(_built-in函数是exception_)。 – ameyCU
原型应该与函数定义完全相同,后跟';'。 C的老版本允许其他方式来做到这一点,但这些会导致混淆。如果函数定义(执行体)在实际调用之前出现在模块中,则不需要原型 - 因为编译器已经知道它。 –
不,你不需要总是声明原型。如果你写了几个函数,那么编写原型将帮助你保持轨道。假设你需要一个函数,你只需要输入一个原型,然后你应该完成这个功能。否则,你可以写上面描述的@Weather Vane函数。 – cjahangir