函数原型不匹配,程序仍在Visual studio 2008和gcc编译器上运行
函数原型不同于调用和定义;不过,它并没有在VisualStudio和gcc编译器上给出任何错误函数原型不匹配,程序仍在Visual studio 2008和gcc编译器上运行,c,C,函数原型不同于调用和定义;不过,它并没有在VisualStudio和gcc编译器上给出任何错误 #include<stdio.h> void print(); //prototype void main() { print(2,2); //calling } void print(int a,int b) //definition { printf("\na=%d\tb=%d",a,b)
#include<stdio.h>
void print(); //prototype
void main()
{
print(2,2); //calling
}
void print(int a,int b) //definition
{
printf("\na=%d\tb=%d",a,b);
}
#包括
作废打印()//原型
void main()
{
打印(2,2);//调用
}
无效打印(int a,int b)//定义
{
printf(“\na=%d\tb=%d”,a,b);
}
使用上述声明的函数原型,您可以将任意数量的参数传递给函数,而不管该函数需要多少个参数 比如说
#include<stdio.h>
void print();//prototype
void main()
{
print(2,2);//calling
print(3); // This would also work output a = 3, b = garbage value
print(4,5,6); // This would also work output a = 4, b = 5
}
void print(int a,int b)//defination
{
printf("\na=%d\tb=%d",a,b);
}
#包括
作废打印()//原型
void main()
{
打印(2,2);//调用
print(3);//这也会对输出a=3,b=garbage值起作用
print(4,5,6);//这也适用于输出a=4,b=5
}
无效打印(int a,int b)//定义
{
printf(“\na=%d\tb=%d”,a,b);
}
注意:如果不想向函数传递任何参数,建议使用void
如作废打印(作废)6.7.5.3函数声明器(包括原型)14 标识符列表仅声明 功能。函数声明器中的空列表,它是 该函数的定义指定该函数没有 参数。函数声明符中不属于部分的空列表 该函数的定义的定义指定没有关于 提供了参数的数量或类型
void print()//prototype
将被视为一个原型,例如没有指定参数。编译器的可能副本只是为了你好。或邪恶。可能两者都有。void print()
不是原型。和void main()
应该是int main(void)
void print(int*);void main()。这意味着它依赖于编译器注意:在C++
中,它将被视为没有参数。