这里的 num 就是全局静态变量,而 temp 是局部静态变量,而函数 fun1 和 fun2 在同一文件中,所以变量名必须不同,但是在不同文件下,又可以继续使用 fun1 和 fun2 函数名了。 说完常见的,现在来看看不常见的。 如果在头文件中使用 static 会发生什么情况呢? 第一次看到 static 在头文件使用的时候是和 inline...
先说说头文件的作用:头文件的作用实际上就是声明接口(函数),包含该头文件的cpp(用户)可以调用头文件中所声明的接口(函数)。 前面说过,static函数的定义只在定义该函数的cpp中有效。下面讨论两种情况: 第一种情况:某 static fun()函数在a.h中被声明,然后a.cpp包含了a.h并对static fun()函数作出了定义。此时...
这里的 num 就是全局静态变量,而 temp 是局部静态变量,而函数 fun1 和 fun2 在同一文件中,所以变量名必须不同,但是在不同文件下,又可以继续使用 fun1 和 fun2 函数名了。 说完常见的,现在来看看不常见的。 如果在头文件中使用 static 会发生什么情况呢? 第一次看到 static 在头文件使用的时候是和 inline...
如果在头文件中声明了static函数,那么所有包含它的源文件都会存在该static函数声明。如果一些源文件要使用该函数,由于static函数仅在当前源文件作用域可见,那么必须在每一个要使用该函数的源文件中都有函数实现,如果仅在一个源文件中实现,其他源文件使用则会编译错误,因为这个实现对于其他源文件是不可见的。 如果在每...
需要引用的头文件:#include <stdio.h> static的使用方式: ①局部静态变量:在函数内使用static修饰的变量称为局部静态变量,局部静态变量与普通局部变量的区别:局部静态变量使用结束后不会销毁,并且保留其值。 1.1(使用static修饰变量) #define_CAR_SECURE_NO_WARNINGS 1#include<stdio.h>voidFunction(intformal_paramet...
1、多文件的创建 2、为什么要有多文件 3、为什么要有头文件 4、多文件在代码中的具体体现 三、最名不符实的关键字 - static static 整体阐述 1、static 修饰局部变量 2、static修饰全局变量 3、static修饰函数 四、总结 一、前言 大家好,欢迎来到C语言深度解析专栏—关键字详解第二篇,在本篇中我们将会对stati...
如果不加staic的话,头文件中的同一个函数就相当于在整个程序中被定义了多次,所以肯定会报错。static会把它定义为本地函数,将其作用域限制在本文件内,所以需要加上static关键字。如果不加static的话,可以用宏定义的方式实现的,然后在每个文件中使用#ifdef和#ifndef以及#endif~...
1)静态函数不能被其它文件所用。 2)其它文件中可以定义相同名字的函数,不会发生冲突。 话不多说,上例子! 从上一个例子中我们可以看到原先这个代码是可以编译过去的,但是如果在函数前加上static那么就会直接形成报错。 我们可以看到有一个叫做LNK1120,这个错误叫做链接器错误,是程序在进行编译链接形成和执行程序时,...
本规则反过来并不一定成立。有些特别简单的头文件,如命令ID定义头文件,不需要有对应的.c存在。 示例:对于如下场景,如在一个.c中存在函数调用关系: voidfoo(){bar();}voidbar(){Dosomething;} 必须在foo之前声明bar,否则会导致编译错误。 这一类的函数声明,应当在.c的头部声明,并声明为static的,如下: ...