C标识符的链接(外部链接,内部链接和无链接)
C标识符链接有3种形式:外部链接的标识符,内部链接的标识符,无链接的标识符
外部链接的标识符:存储类标识符使用 extern 修饰,或无此类修饰符修饰(系统默认为extern ) ||可在其他源代码文件中使用
内部链接的标识符: 使用 static 修饰 || 只可在当前源代码文件中使用
无链接的标识符: 函数参数;被声明在函数内的没有extern修饰的变量(局部变量);非变量名,非函数名的标识符,如label name
一段经典例子,有助于区别和记忆:
int func1(void); //fuc1具有外部链接
int a; //a 具有外部链接
extern int b=1; //b具有外部链接
static int c; // c 具有内部链接
static void func2( int d ) // func2具有内部链接
{
extren int a; // a 具有外部链接
int b =2; // 此b具有无链接,并将上面声明的b隐藏起来
extern int c; // c和上面的c一样,维持内部链接
static int e; //e 具有无链接
....
}
相关文档:
源码:
# include <stdio.h>
int main()
{
/* 定义字符型变量,并给它们付初值 */
char c1, c2, c3, c4, c5, c6, c7;
c1 = 'C';
c2 = 'h';
c3 = 'i';
c4 = 'n';
& ......
源码:
# include <stdio.h>
int main()
{
/* sex代表输血者的性别,weight代表输血者的体重,cubage代表输血量 */
int sex, weight, cubage;
printf("请给出输血者的性别(女性为负数)和体重:(用逗号隔开)");
&nbs ......
源码:
# include <math.h>
# include <stdio.h> /* 数学函数库 */
int main()
{
/* 用s表示多项式的值,用t表示每一项的值 */
double s, t, x; // 此处用双精度声明变量
int n;
printf ......
源码:
# include <stdio.h>
/* 宏定义 */
# define MAX 100
# define LEN 80
/* 一个非常简单的文本编辑器 */
int main()
{
char text[MAX][LEN]; // 定义字符型数组
register int t, i, j; /* 定义三个寄存器变量 */
  ......
(转自)http://blog.pfan.cn/whyhappy/6030.html
函数名与函数指针
一 通常的函数调用
一个通常的函数调用的例子:
//自行包含头文件
void MyFun(int x); //此处的申明也可写成:void MyFun( int );
int main(int argc, char* argv[])
{
......