14
可能重複:
Difference between string.h and cstring?包含標準頭文件。 string.h或cstring?或兩者?
什麼是用C良好的編程習慣++包括有關標準的頭文件
包括代替math.h
反之亦然cmath
時?
包括cstring
代替string.h
或反之亦然?
和其他<c*>
和<*.h>
頭文件顯然似乎完成相同的事情?
可能重複:
Difference between string.h and cstring?包含標準頭文件。 string.h或cstring?或兩者?
什麼是用C良好的編程習慣++包括有關標準的頭文件
包括代替math.h
反之亦然cmath
時?
包括cstring
代替string.h
或反之亦然?
和其他<c*>
和<*.h>
頭文件顯然似乎完成相同的事情?
<cstring>
較新; <string.h>
真的有向後兼容性(當然,對於C來說)。區別在於<cstring>
將字符串函數置於std
名稱空間中,而<string.h>
將它們放入全局名稱空間中。
此外,<cstring>
更改某些功能的類型以促進類型安全性。例如,C聲明
char *strchr(char const *, int);
由重載(在std
命名空間)
char *strchr(char *, int);
char const *strchr(char const *, int);
在<cmath>
的情況下,存在further differences與<math.h>
這使得<cmath>
更慣用的和更少的C-等取代。
優選<cstring>
用於新代碼並在功能上使用std::
前綴。
@Jefromi:不完全是一個騙局;這個問題也適用於''。 –
2012-01-06 11:13:58