c语言所有函数都默认是 c语言所有函数都默认是什么

C语言里的static和extern的作用是什么?

假如有三个文件:a.h, a.c, main.c

创新互联建站专注于柯坪企业网站建设,成都响应式网站建设,商城网站制作。柯坪网站建设公司,为柯坪等地区提供建站服务。全流程定制网站建设,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务

在文件a.c中定义一个全局变量和函数:

int i = 213;

void print(void) { printf("print in a.c"); }

在文件a.h中声明这个全局变量和函数:

extern int i;// 加extern声明而不定义,指明这个变量在某处已定义,此处只是做一个说明

extern void printf(void); // 函数原型即是声明,所以此处可以不用加extern明确这是声明

在文件main.c中:

#include “a.h”

int main()

{

printf("%d\n", i); // 直接使用i

print(); // 直接调用print()

}

---

如果将文件a.c中相关定义改为

static int i = 213;

static void print(void) { printf("print in a.c"); }

文件a.h与main.c中内容不变

此时编译出错,报告找不到print()函数,找不到i,这是因为static限制print()和i只能在a.c中使用。

===

如果用static修饰局部变量,则该局部变量将拥有全局生命周期,即在程序执行期间都存在,且其值为上一次使用后的值。

int print(void)

{

static int i = 0;

printf("%d",i++);

}

不加static,每次调用print(),输出结果都是0

加上static,每次调用printf(), 输出结果都不同,即:0,1,2,3……

在C语言中函数的默认参数类型

  在许多c语言初学者中编写函数时,都喜欢将无参函数中的参数类型忽略。

  但是实际上 默认的参数类型 不是无参 void ,而是接受 任意数量和类型的参数 。也就是说 int func() 和 int func(void) 是不一样的。下面通过一个例子加深了解一下在C语言中函数的默认参数类型:

  所以说,在使用c语言编写无参函数时,一定要把 void 写上去,不然会有安全隐患。

c语言函数返回类型默认为什么类型?

函数返回类型是你定义函数时自己决定的,默认为int型

C语言函数格式为:

类型名

函数名(形参1,形参2……)

类型名就决定了返回类型,如果没有明确写出返回类型的话,默认为int类型。

void是空类型,

void必须要明确写出来才可以,指的是函数不提供返回值,不是默认的。

比如:

函数定义

int

fun(int

a)

返回值就是整型

函数定义

int

*fun(int

a)

返回值就是整型的指针

函数定义

void

fun(int

a)

无返回值

c语言中函数默认存储类型是什么

c语言中的存储类型有static 、auto、extern、及register,函数默认的存储类型应该是extern,意思是具有外部链接性的。一般来说,会通过extern来声明函数。比如下面的代码,在1.c中定义一个函数,函数的声明写在1.h头文件中,在2.c中通过添加1.h的头文件,来声明及调用函数f()。

//1.c

void f() { ; }

//1.h

extern void f();

//2.c

#include "1.h"

int main() { f();}


网站名称:c语言所有函数都默认是 c语言所有函数都默认是什么
本文URL:http://hbruida.cn/article/dodphei.html