static void函数 在C语言中,static关键字可以用来修饰函数和变量。当它修饰函数时,它表示该函数只能在当前文件中使用,不能被其他文件调用。这种函数被称为“静态函数”。 而void关键字表示该函数没有返回值。因此,static void函数的定义形式为: static void functionName(parameters) { //函数体 } 静态函数的使用...
int main(void){ fun(); fun1(); return 0;}/* file2.c */#include <stdio.h>static void fun1(void){ printf("hello from static fun1.\n");} 使用gcc file1.c file2.c编译时,错误报告如下: /tmp/cc2VMzGR.o:在函数‘main’中:static_fun.c:(.text+0x20):对‘fun1’未定义的引用...
c语言中static、extern、void的重载 static: 1、在函数内部,表示该变量的值在各个调用间一直保持延续性; 2、在函数这一级,表示该函数只对本文件可见。 extern: 1、用于函数定义,表示全局可见(属于冗余的); 2、用于变量,表示它在其他地方定义。 void: 1、作为函数的返回类型,表示不返回任何值; 2、在指针声明中...
static void fun1(void) { printf("hello from static fun1.\n"); } 使用gcc file1.c file2.c编译时,错误报告如下: /tmp/cc2VMzGR.o:在函数‘main’中: static_fun.c:(.text+0x20):对‘fun1’未定义的引用 collect2: error: ld returned 1 exit status 修改文件,不使用static修饰符,可在另一...
static void fun1(void) { printf("hello from static fun1.\n"); } 使用gcc file1.c file2.c编译时,错误报告如下: /tmp/cc2VMzGR.o:在函数‘main’中: static_fun.c:(.text+0x20):对‘fun1’未定义的引用 collect2: error: ld returned 1 exit status ...
⑷文件subf3.c ……extern void output(……) /*定义外部函数*/{……}静态局部变量static的存储 有时希望函数中的局部变量的值在函数调用结束后不消失而继续保留原值,即其占用的存储单元不释放,在下一次再调用该函数时,该变量已有值(就是上一次函数调用结束时的值)。这时就应该指定该局部变量为“静态局部...
我在void one()的前面加了个static,代表one函数是个内部函数。 然后你会发现程序运行不起来了,在链接的时候就报错了。报错的原因很简单:我们在main.c中调用了one.c中定义的one函数,但是现在one.c的one函数是个"内部函数",不允许其他文件访问。我们来看看错误信息: 第1个红框中的Undefined symbols...意思是one...
c语言中static、extern、void的重载 static: 1、在函数内部,表示该变量的值在各个调用间一直保持延续性; 2、在函数这一级,表示该函数只对本文件可见。 extern: 1、用于函数定义,表示全局可见(属于冗余的); 2、用于变量,表示它在其他地方定义。 void: 1、作为函数的返回类型,表示不返回任何值;...
int main(void) { extern char a; // extern variable must be declared before use printf("%c ", a); (void)msg(); return 0; } 程序的运行结果是: A Hello 你可能会问:为什么在 a.c 中定义的全局变量 a 和函数 msg 能在 main.c 中使用?前面说过,所有未加 static 前缀的全局变量和函数都具...