我在Linux下用C语言重写malloc
我想要把所有的函数除了malloc外全部设为static
但是由于格式要求限制 一个文件中不能写5个以上的函数 所以我必须要写几个文件
这样的话 能否使得我写的函数相互之间可以调用 但对外只有重写的malloc可见?
我写的其他函数都是为了重写malloc
也就是说其他函数都会被我的malloc直接或间接的用到
并且几个文件都有相互的include……
不能,C语言中的static函数,内部函数和外部函数,函数一旦定义后就可被其它函数调用。
当一个源程序由多个源文件组成时,在一个源文件中定义的函数能否被其它源文件中的函数调用,C语言又把函数分为两类。
如果在一个源文件中定义的函数只能被本文件中的函数调用,而不能被同一源程序其它文件中的函数调用, 这种函数称为内部函数。
内部函数也称为静态函数,但此处静态static 的含义已不是指存储方式,而是指对函数的调用范围只局限于本文件。
外部函数在整个源程序中都有效,其定义的一般形式为extern 类型说明符 函数名形参表。
C语言中static函数,只能被本文件中的函数所使用,别的c文件中不能访问这个函数,而且你可以在别的文件中定义与之同名的函数,不会互相干扰。
这些文件之间都有相互调用关系 都有include其他文件的.h
另外我不是很懂你的意思
你说让我把malloc单独放 然后其余的不需要对外可见的用static修饰
malloc不就不能调用我写的其他的函数了?
也可能是我没解释清楚?我写的其他函数都是为了重写malloc 也就是说其他函数都会被我的malloc直接或间接的用到