c中的以下语法是什么?

mys*_*_go 6 c

fd1 = open("/dev/test_kft" "1",00);
Run Code Online (Sandbox Code Playgroud)

什么"/dev/test_kft" "1"意思?

Ign*_*ams 10

它是由编译器执行的隐式连接.它导致了"/dev/test_kft1".


Mat*_*ner 1

C 中的显式形式是这样的:

char part1[] = "/dev/test_kft";
char part2[] = "1";
char path[strlen(part1) + strlen(part2) + 1];
strcpy(path, part1);
strcat(path, part2);
Run Code Online (Sandbox Code Playgroud)

这仍然没有复制“隐式”串联形式放置在rodata段中的事实。在我给出的示例中,它将位于堆栈上。您可以使用 malloc 将其放在堆上。隐式版本是在编译时完成的,如果可能的话最好使用。