c语言中静态函数的作用域

c语言中静态函数的作用域,c,stack,heap,storage-class-specifier,C,Stack,Heap,Storage Class Specifier,一旦我听说了这个函数,它被声明为静态的,不是放在堆栈中,而是放在堆中。现在,当我研究这个的时候,我发现这很有趣,但看起来不是真的。那么这是真的吗?或者有什么方法可以做到这一点(在函数的生存期内将函数放在堆上)?函数不放在堆栈或堆上。函数(即实现它的代码)通常放在内存的某个区域中,操作系统通常将其标记为只读,程序启动时从可执行文件加载 函数定义上的static关键字会影响其名称的可见性。静态函数的名称仅在定义它的翻译单元中可见。如果使用指针而不是按函数名调用函数,则仍可从其他转换单元(源文件)调用

一旦我听说了这个函数,它被声明为静态的,不是放在堆栈中,而是放在堆中。现在,当我研究这个的时候,我发现这很有趣,但看起来不是真的。那么这是真的吗?或者有什么方法可以做到这一点(在函数的生存期内将函数放在堆上)?

函数不放在堆栈或堆上。函数(即实现它的代码)通常放在内存的某个区域中,操作系统通常将其标记为只读,程序启动时从可执行文件加载

函数定义上的
static
关键字会影响其名称的可见性。
静态
函数的名称仅在定义它的翻译单元中可见。如果使用指针而不是按函数名调用函数,则仍可从其他转换单元(源文件)调用该函数

如果函数中定义的变量未定义为
静态
,则通常在“堆栈”上分配存储,如果定义为
静态
,则在某些全局内存区域中分配存储。“堆”仅用于
malloc
和类似函数分配的内存

请注意,C标准没有使用术语“堆栈”或“堆”,不同的C编译器可能会使用不同的术语。函数中的局部变量是以类似堆栈的方式分配的,但标准没有说明“堆栈”是如何实现的(例如,它在内存中不一定是连续的)。

函数不放在堆栈或堆上。函数(即实现它的代码)通常放在内存的某个区域中,操作系统通常将其标记为只读,程序启动时从可执行文件加载

函数定义上的
static
关键字会影响其名称的可见性。
静态
函数的名称仅在定义它的翻译单元中可见。如果使用指针而不是按函数名调用函数,则仍可从其他转换单元(源文件)调用该函数

如果函数中定义的变量未定义为
静态
,则通常在“堆栈”上分配存储,如果定义为
静态
,则在某些全局内存区域中分配存储。“堆”仅用于
malloc
和类似函数分配的内存

请注意,C标准没有使用术语“堆栈”或“堆”,不同的C编译器可能会使用不同的术语。函数中的局部变量是以类似堆栈的方式分配的,但标准没有说明“堆栈”是如何实现的(例如,它在内存中不一定是连续的)。

函数不放在堆栈或堆上。函数(即实现它的代码)通常放在内存的某个区域中,操作系统通常将其标记为只读,程序启动时从可执行文件加载

函数定义上的
static
关键字会影响其名称的可见性。
静态
函数的名称仅在定义它的翻译单元中可见。如果使用指针而不是按函数名调用函数,则仍可从其他转换单元(源文件)调用该函数

如果函数中定义的变量未定义为
静态
,则通常在“堆栈”上分配存储,如果定义为
静态
,则在某些全局内存区域中分配存储。“堆”仅用于
malloc
和类似函数分配的内存

请注意,C标准没有使用术语“堆栈”或“堆”,不同的C编译器可能会使用不同的术语。函数中的局部变量是以类似堆栈的方式分配的,但标准没有说明“堆栈”是如何实现的(例如,它在内存中不一定是连续的)。

函数不放在堆栈或堆上。函数(即实现它的代码)通常放在内存的某个区域中,操作系统通常将其标记为只读,程序启动时从可执行文件加载

函数定义上的
static
关键字会影响其名称的可见性。
静态
函数的名称仅在定义它的翻译单元中可见。如果使用指针而不是按函数名调用函数,则仍可从其他转换单元(源文件)调用该函数

如果函数中定义的变量未定义为
静态
,则通常在“堆栈”上分配存储,如果定义为
静态
,则在某些全局内存区域中分配存储。“堆”仅用于
malloc
和类似函数分配的内存


请注意,C标准没有使用术语“堆栈”或“堆”,不同的C编译器可能会使用不同的术语。函数中的局部变量是以类似堆栈的方式分配的,但标准没有说明“堆栈”是如何实现的(例如,它在内存中不一定是连续的)。

代码既不放在“堆栈”中,也不放在“堆”中。我担心你可能误解了什么。你可能在想静态的本地人?我想我写错了我的帖子。我知道代码(指令)被放置在文本段等中。我的意思是说“函数被放置…”。代码既不被放置在“堆栈”中,也不被放置在“堆”中。我担心你可能误解了什么。你可能在想静态的本地人?我想我写错了我的帖子。我知道代码(指令)被放置在文本段等中。我的意思是说“函数被放置…”。代码既不被放置在“堆栈”中,也不被放置在“堆”中。我担心你可能误解了什么。你可能在想静态的本地人?我想我写错了我的帖子