2012-01-05 57 views

回答

23

<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::前綴。

相關問題