你能用hex声明char **中的数据吗?
我想说我有这个
char *something[] = { "/bi", "-c", "5", NULL, NULL };
但是我想用hex声明它,我该怎么做呢; 编译器不断出错我:
char *something[] = { {0x2f,0x62,0x69}, {0x2d,0x63}, {0x35}, {0x00}, {0x00} };
为此添加其他内容,0x00总是为空吗? 0x00总是在NULL为-1的系统上转换为NULL?
您可以在字符串文字中使用hex转义序列。 例如:
char *something[] = { "\x2f\x62\x69", "\x2d\x63" };
要回答有关NULL
和空指针的问题:宏NULL
始终为0.然后,编译器将其转换为适当的空指针。 comp.lang.c常见问题解答中有一整节对此进行了更全面的解释 。