Skip to content

程序设计和C语言(4)

572字约2分钟

2024-07-07

14.全局变量及宏定义

/*
学习目标
(1)宏名,全局变量建议大写
(2)#开头的都是预处理指令,预处理是发生在预编译阶段(编译之前),对源程序进行一些简单的文本替换
(3)全局变量的作用域就是从定义处开始,到整个文件的末尾
*/
#include <stdio.h> 
#define P1 3.1415926   //定义一个宏名P1,程序会在预编译阶段把该定义出之后的所有的P1地方替换为3.1415926


int A;                 //未初始化的全局变量A,初始值4的全局变量B
int B=4;
int main(void)
{
	printf("%d,%d\n",A,B);
	printf("P1\n");
//	P1=10;         //error 符号常量P1不能被赋值


	printf("%d,%d\n",A,B);
	return 0;
}

15.标识符命名规范

在程序中使用的变量名、函数名、宏名等统称为标识符。 除库函数的函数名由系统指定外,其余都由用户自定义。C规定,标识符只能是字母、数字、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。

  1. 标识符不能和C语言的关键字相同,也不能和用户自定义的函数或C语言库函数重名。
  2. 不同的C语言编译器对标识符的长度规定不同。
/*
(1)变量的作用域,就看变量直接隶属于哪个"花括号",那么其作用域就是从定义域开始,到这个"花括号"的末尾结束。
(2)同个"花括号"中不可以"直接"定义重名变量。
(3)在文件中的某一处引用重名变量时,所引用的变量就是作用域较小的那一个变量。
*/
#include <stdio.h>
int a =1;
//int a;    error 注意事项(2)
void f(int a);       //函数声明中的形式参数变量名,无作用域
int main(void)
{
	printf("%d\n",a);




	int a =2;     //注意事项(3)


//      int a;    error 注意事项(2)
	printf("%d\n",a);


	if(1)
	{
		int a = 3;


//              int a;    error 注意事项(2)
		printf("%d\n",a);
	}


	f(4);
	return 0;


}
void f(int a)
{
//      int a;    error 注意事项(2)
	printf("%d\n",a);
}