CURRENT_DIR
我在我的程序中多次调用(见下文)。就像程序运行时可执行文件路径不会改变一样,每次我调用这个函数时都重新定义它是没有意义的。
所以,我正在寻找一个解决方案,一旦设置了这个值,就不应该再次设置它。
我目前的解决方案是:创建一个所有值都设置为 0 的静态变量,并在 if 语句测试中检查第一个字符是否非空,如果为真,则设置它。但它看起来不优雅..也许有更好的解决方案..通过使用包括宏在内的一些模型,我不知道。
见代码:
#define CURRENT_DIR ({ \
static char buffer[MAX_PATH + 1] = { 0 }; \
if(buffer[0] != '\0') \
getcurrentdir(buffer, MAX_PATH); \
buffer; \
})