为什么在其函数定义之外声明的函数变量不会引发错误?
Why does a variable of a function declared outside its function definition doesn't throw an error?
为什么这个带有整数声明的代码在中间(函数定义之间)没有抛出错误?
1) 为什么语法正确。
2)这样做有什么用?
#include <stdio.h>
void func(int, int);
int main()
{
int a, b;
a = 10;
b = 20;
func(a, b);
return 0;
}
void func(i, j)
int i,j; //why does this doesn't throw error.
{
printf("a = i = %d\nb = j = %d\n", i, j);
}
TL;DR - K&R 风格。
在你的代码中
void func(i, j)
int i,j; {
不会抛出错误,因为它是一个(唯一的)有效语法,曾几何时。
目前不无效,但不再使用
如果需要,您可以阅读有关 K&R style syntax here 的更多信息。
这个
void func(i, j)
int i,j; //declare types of arguments
{
//function body
}
被称为 K&R 语法。它已经过时但仍在某些 C 项目中使用,例如 bash
.
为什么这个带有整数声明的代码在中间(函数定义之间)没有抛出错误?
1) 为什么语法正确。
2)这样做有什么用?
#include <stdio.h>
void func(int, int);
int main()
{
int a, b;
a = 10;
b = 20;
func(a, b);
return 0;
}
void func(i, j)
int i,j; //why does this doesn't throw error.
{
printf("a = i = %d\nb = j = %d\n", i, j);
}
TL;DR - K&R 风格。
在你的代码中
void func(i, j)
int i,j; {
不会抛出错误,因为它是一个(唯一的)有效语法,曾几何时。
目前不无效,但不再使用
如果需要,您可以阅读有关 K&R style syntax here 的更多信息。
这个
void func(i, j)
int i,j; //declare types of arguments
{
//function body
}
被称为 K&R 语法。它已经过时但仍在某些 C 项目中使用,例如 bash
.