回答
在C中的顯式的形式是這樣的:
char part1[] = "/dev/test_kft";
char part2[] = "1";
char path[strlen(part1) + strlen(part2) + 1];
strcpy(path, part1);
strcat(path, part2);
這仍然沒有複製的事實「隱式」連接形式位於rodata段中。在我給出的例子中,它將在堆棧中。你可以用malloc把它放在堆上。隱式版本在編譯時完成,如果可能的話,首選。
它是由編譯器執行的隱式串聯。結果爲"/dev/test_kft1"
。
什麼是在C/c + +中串接字符串的顯式形式? – 2011-03-19 06:14:04
您可以使用libc庫中的strcat或strncat函數 – chappar 2011-03-19 06:57:13
預處理符連接相鄰的字符串常量,使得線相同
fd1 = open("/dev/test_kft1", 00);
什麼是**顯式**表單在C/C++中串接字符串? – 2011-03-19 06:31:45
雖然我不明白「一」「二」是不是明確的。隱藏什麼? – detly 2011-03-19 07:24:20
@detly是的,這個答案非常糟糕......它甚至不涉及這個問題。可憐的OP讓SO困惑,永不回頭。 – 2014-08-11 06:17:52
@JimBalter如果你讀過OP對其他答案的評論,你會發現他原來的問題不是很清楚。 SO並沒有真正處理這種情況。我回答了似乎是他真正的問題。 – 2014-08-12 16:39:13