当前位置: 代码迷 >> C语言 >> 由朋友提问,想到的一个自定义函数的问题(未解决)
  详细解决方案

由朋友提问,想到的一个自定义函数的问题(未解决)

热度:122   发布时间:2007-04-10 15:22:15.0
如果觉得自己是对的,就努力去说服对方
----------------解决方案--------------------------------------------------------
这三个基本上没有什么区别呀。
我很纳闷,这三个程序都是很平常的,我们经常可以见到的。
我不知道楼主出于什么想法,可能不是楼主提的吧。
你看,他等级多高了呀。
怎么可能呀?
----------------解决方案--------------------------------------------------------
果然是水区来的,有点差点,看9楼
----------------解决方案--------------------------------------------------------
以下是引用PcrazyC在2007-4-10 10:56:29的发言:
注意两点:

声明函数时,是一个语句,后面要加分号,而定义函数时,不是语句,所以不能加分号,就和宏定义一样(宏定义不是语句)

在调用函数前的任何地方进行了声明或定义(当然不能嵌套定义)后,都没有问题,否则会出现编译错误

另外其实还是有区别的:

函数进行声明时,其实就是一个定义变量的过程,函数名就是一个变量,如果声明在函数外,就相当于定义了一个全局变量,如果声明再某个过程中(包括复合语句),就相当于定义一个局部变量,其作用范围我就不说了.

猴子,你是不是去泡妞啊

void PrintWord()
{
printf("Money!");
}

void OutFunction()
{
PrintWord();
}

main()
{
void PrintWord();

OutFunction();
getch();
}

你编译不过去?!


----------------解决方案--------------------------------------------------------

哪编译不过,我的怎么很好

void PrintWord()
{
printf("Money!");
}

void OutFunction()
{
PrintWord();
}

main()
{
void PrintWord(); //这句还是多余的,不要都可以,要也行

OutFunction();
getch();
}


----------------解决方案--------------------------------------------------------
以下是引用PcrazyC在2007-4-10 16:27:11的发言:

哪编译不过,我的怎么很好

void PrintWord()
{
printf("Money!");
}

void OutFunction()
{
PrintWord();
}

main()
{
void PrintWord(); //这句还是多余的,不要都可以,要也行

OutFunction();
getch();
}


看来你没明白我的意思


函数进行声明时,其实就是一个定义变量的过程,函数名就是一个变量,如果声明在函数外,就相当于定义了一个全局变量,如果声明再某个过程中(包括复合语句),就相当于定义一个局部变量,其作用范围我就不说了.


----------------解决方案--------------------------------------------------------
以下是引用pinglideyu在2007-4-10 15:40:32的发言:
这三个基本上没有什么区别呀。
我很纳闷,这三个程序都是很平常的,我们经常可以见到的。
我不知道楼主出于什么想法,可能不是楼主提的吧。
你看,他等级多高了呀。
怎么可能呀?

猴子能有多高啊....


----------------解决方案--------------------------------------------------------

刚才那个程序不太能说明问题
你看看这个:

int DimFunction()
{
int PrintWord();
}

int OutFunction()
{
PrintWord();
}

main()
{
OutFunction();
getch();
}

int PrintWord()
{
printf("Money!");
}


----------------解决方案--------------------------------------------------------

那不就相当于即定义了一个全局变量,又定义了一个局部变量,在局部变量的范围内,全局变量被屏蔽,而在其它的地方还是可以用的


----------------解决方案--------------------------------------------------------
28楼又怎么了
----------------解决方案--------------------------------------------------------
  相关解决方案