可以通过C库函数rename实现.
头文件:stdio.h
原型::int rename(char *oldname, char *newname);
功能: 给一个文件重命名,从原始的oldname改成新名字newname.如果oldname和newname带有路径,且所在文件夹不同,那么用该函数可以实现文件移动功能.删除成功返回0,否则返回-1.
使用rename需要注意:
第一段:重命名文件:
如果newname指定的文件存在,则会被覆盖.
如果newname与oldname不在一个目录下,则相当于移动文件.
第二段:重命名目录:
如果oldname和oldname都为目录,则重命名目录.
如果newname指定的目录存在且为空目录,则先将newname删除.
对于newname和oldname两个目录,调用进程必须有写权限.
重命名目录时,newname不能包含oldname作为其路径前缀.例如,不能将/usr更名为/usr/foo/testdir,因为老名字( /usr/foo)是新名字的路径前缀,因而不能将其删除.
主要用于函数重定义,通用性,可以用一个变量符号替代另一个变量符号
格式:#define
M(x,y)
x+y
;直接代入
还有就是
:#define
Uint
unsigned
int
即用
代替unsigned
便于书写,还有就是不同操作系统的通用变量识别
是可以重名的,只不过局部变量可以覆盖全局的,就是在局部变量的范围内全局变量不起作用
局部会屏蔽全局.要用全局变量,需要使用 "::" ;
局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量.对于有些
编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那
个局部变量的作用域就在那个循环体内.
扩展资料
C语言中全局变量和局部变量的区别是他们的作用域不同,全局变量是整个C程序,局部变量是定义所在的大括号内,同一个作用域内不能定义两个同类型同名的变量,因为编译会报错.
由1个或者多个C文件组成的工程中,可以定义和全局变量同名同类的局部变量,但是不提倡这样使用,因为此时变量的值和变量被调用的位置有关系.
使用全局变量时,需要先用extern关键字声明,全局函数也是用相同的关键字.
如果二者作用域没有交叉,那么可以把函数名定义为static.
或者在使用宏的地方,不要声明该函数.
否则,只能改掉其中一个名字.
推荐宏名用全大写字母.
函数名用全小写字母或者单词开头字母大写. 这样就不会冲突了.
而且根据名字 一眼就可以看出来是宏还是函数.
会出错吧,宏定义替换的是一个常数,如果是用宏来计算什么的话,也是将函数过程给放上去,得出值后被宏名替换,直接替换函数名是不可行的
两种方法:
①. 使用宏定义,如:
#ifndef?ran
#define?ran?__mlcd_ran
#endif
//?Type.h
//?假设?__mlcd_ran?的函数原型为:void?__mlcd_ran(int);
extern?void?(*ran)(int);
//?Main.cpp
void?(*ran)(int);??//?定义全局变量
int?main()
{
ran?=?__mlcd_ran;??//?初始化
...
return?0;
}
//?然后在任何需要调用的?.cpp?文件中包含此头文件,如:
#include?"Type.h"
ran(100);?//?有的编译器编译不过
*ran(100);
以上就是土嘎嘎小编为大家整理的c语言用宏对函数重命名相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!