变量类型全局、静态、局部和自动

Variable types global, static , local and auto

本文关键字:局部 静态 类型 全局 变量      更新时间:2023-10-16

我想开发一个想要跟踪的系统系统中频繁发生的事件。我可以通过打电话来做到这一点一个函数,递增事件发生计数器,并打印其值,然后返回。自完成此操作,我需要一个可以保留其值的变量,即使在函数返回后,以便在下次调用函数时计数器的先前值可以增加 1,因此上。

根据您的意见,我们应该使用局部变量的类型,全局、静态还是自动?用有效的论据支持你的答案。

本地和自动相同,第四种类型是寄存器而不是本地。您不能使用 auto,因为它的变量在每次调用时都会重新定义。

全局或静态,具体取决于您的设计需求。如果要在其他文件中使用该变量,请将其全局化。

int count; // outside the function calls 

如果希望它的作用域是该函数的本地范围,并且每次发生事件时递增,则使其在函数内是静态的

static int count = 0; 
// variable is defined only once subsequent calls to it wont redefine it  

如果您希望整个文件访问它而不是外部世界,则可以将其设置为全局和静态。

 static int count = 0; // outside of any function calls.