是否可以在 GCC 中全局禁用以 NUL 结尾的字符串?
我正在使用自己的字符串库,我完全不需要最终的 NUL 字符,因为它已经在内部存储了适当的长度。
但是,如果我想附加 10 个字符串,这意味着在堆栈上不必要地分配了 10 个字节。宽字符串情况更糟:至于 x86,浪费了 40 个字节;对于 x86_64,80 字节!
我定义了一个宏来将这些堆栈分配的字符串添加到我的结构中:
#define AppendString(ppDest, pSource) \
AppendSubString(ppDest, (*ppDest)->len + 1, pSource, 0, sizeof(pSource) - 1)
使用sizeof(...) - 1
效果很好,但我想知道是否可以摆脱 NUL 终止以节省几个字节?