1.return函数和exit函数
return函数跳出当前函数;
exit跳出整个函数。
#include<stdio.h>
#include<stdlib.h>
void fun()
{
printf("fun\n");
return;
}
void fun0()
{
printf("fun0\n");
exit(0);
}
int main()
{
fun();
fun0(); //调用fun0函数,查看是否跳出整个函数。
printf("Hello!\n");
return 0;
}
2.函数声明
编译器很傻,调用函数时只在主函数上面寻找函数定义;
如果函数定义在主函数下面,要在调用函数之前进行声明;
声明可以在前面加或不加extern;
声明时形参可以改变变量名或只写变量类型;
声明可以在调用函数之前的任何位置进行;
声明可以重复进行。
#include<stdio.h>
extern int my_strlen(char); //前面extern可写可不写
int main()
{
int my_strlen(char a[]); //可以重复声明,并改变形参名
int len=my_strlen("Hello world!");
printf("The string length:%d\n",len);
return 0;
}
int my_strlen(char str[]) //定义查询字符串长度函数
{
int i=0;
while(str[i]!='\0')
{
i++;
}
return i;
}
3.分文件编译
函数定义.c文件:
int my_strlen(char buf[])
{
int i=0;
while(buf[i]!='\0')
{
i++;
}
return i;
}
函数声明.h头文件:
#pragma once //防止重复声明之方法一
#ifndef _MY_STRLEN_H //防止重复声明之方法二
#define _MY_STRLEN_H
extern int my_strlen(char buf[]);
#endif
主函数.c:
#include<stdio.h>
#include"my_strlen.h"
int main()
{
char str[]="hello world!";
printf("The string length : %d\n",my_strlen(str));
return 0;
}