不一定
目前创新互联已为上1000家的企业提供了网站建设、域名、虚拟主机、网站托管维护、企业网站设计、铜鼓网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
但是C语言的源程序在执行时,固定都是从全局main函数开始,并从全局main函数结束。因此,自定义的函数如果要被执行,必须有一条能够从main函数到这个自定义函数的调用路径。
比如说,你自定义了函数A和函数B,其中函数B在函数A中有调用,但不在全局main函数中调用,那只需要在全局main函数中调用函数A,函数B就会在执行到函数A调用函数B的部分时执行
示例
#includestdio.h
void B(){
printf("我是函数B\n");
}
void A(){
B();
printf("我是函数A\n");
}
main(){
printf("main函数执行开始\n");
A();
printf("main函数执行完毕\n");
}
运行结果:
main函数执行开始
我是函数B
我是函数A
main函数执行完毕
(按任意键)
其实是这样的,对于函数定义和调用,如果你需要用这样功能的函数,如果库函数里面没有,那么就需要你自己去定义和调用了,如果函数的定义是在函数调用的前面,那么就不需要函数声明,反之就需要函数声明,如果你在源文件中定义了一个函数,但没有调用,也没有关系的,就好比,你东西买好了,但不一定要现在就用,当你需要的时候再用,当然也可以当你需要时再买,希望对你有帮助!
我刚入门的时候也是这样想的,哈哈。
但是随着你学的深入,你会知道指针才是c语言的灵魂。
用函数交换变量,如果不用指针的话,是无法进行的,因为函数只能改变形参,而对于主函数的实参,是没有交换作用的(这里得好好想想,初学可能会糊涂的点就在这)
指针的作用很多的,下面是我上课做的一些笔记,你可以看看。
有什么问题再追问我哦~
指针的重要性
表示一些复杂的数据结构
快速的传递数据,减少内存的耗用
使函数返回一个以上的值
能直接访问硬件
能够方便地处理字符串
是理解面向对象语言中引用的基础
总结:指针是c语言的灵魂
函数的调用必须是已知文件名的。如果你写一个系统的某一层,不知道其他层的内部情况,这时候用指针传递函数最合适。还有,结构体里包含指向函数的指针,就相当于一个简单的“对象”了。
看看linux内核里各接口的定义。函数指针的使用使的内核可以很多人同时开发,并且大家只需要知道相应的接口就可以了。这套框架,离不开函数指针。
方法一、
double traingle_area(double a,double b,double c){
if(a+blt;c||a+clt;b||c+blt;a){
//不是三角形
return-1;
}
double p=(a+b+c)/2.0;
return sqrt(p*(p-a)*(p-b)*(p-c));
}
方法二、
#includelt;iostreamgt;
#includelt;cmathgt;
using namespace std;
double triangel_area(double a,double b,double c);
int main()
{
double a,b,c;
\x09cingt;gt;agt;gt;bgt;gt;c;
\x09coutlt;lt;triangel_area(a,b,c)lt;lt;endl;
\x09return 0;
}
double triangel_area(double a,double b,double c)
{
\x09if(a+bgt;c||a+cgt;b||b+cgt;a)
\x09{
\x09 double p=(a+b+c)/2;
\x09\x09return sqrt(p*(p-a)*(p-b)*(p-c));
\x09}
\x09return 0.0;
}
扩展资料:
include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#includelt;文件名gt;
2、#include"文件名"