让我说我有这个
char *something[] = {
"/bi",
"-c",
"5",
NULL,
NULL
};
但是我想用十六进制声明它,我该怎么做呢;编译器一直在向我发错:
char *something[] = {
{0x2f,0x62,0x69},
{0x2d,0x63},
{0x35},
{0x00},
{0x00}
};
为此添加其他内容,0x00总是为空吗? 0x00总是在NULL为-1的系统上转换为NULL,例如?
答案 0 :(得分:6)
您可以在字符串文字中使用十六进制转义序列。例如:
char *something[] = {
"\x2f\x62\x69",
"\x2d\x63"
};
答案 1 :(得分:1)
回答关于NULL
和空指针的问题:宏NULL
总是 0.编译器然后将其转换为适当的空指针。 The comp.lang.c FAQ has an entire section explaining this more thoroughly