_tgetenv(),_tcscat() ,setmode(),_tsplitpath()等函數的 was declared deprecated 警告

 

這些函數因爲不是十分安全的,對於內存不夠的時候處理並不完善,所以建議使用 更爲安全的函數版本

比如_tgetenv_s();_tcscat_s(),_tsplitpath_s()等

 

_tgetenv_s()函數聲明:

_tgetenv_s()用法如下:

 

 

 

_setmode() ,如_setmode(_fileno(stdout),_O_BINARY);需要的頭文件爲

 #include  <io.h>//_setmode()需要

  #include <fcntl.h>//_O_BINARY 需要

用法:

 

 

對於 _tcscat_s() MSDN上如下聲明:

 

 

自己的例子:

 

 

 

_tsplitpath_s() 聲明如下:

 

自己的例子

 

從上面的例子可以看出,對於這些函數,若是指針傳遞,則比原先不安全的版本多一個大小限制,而對於已經申請好的字符串引用傳遞,則可以和以前一樣用(僅限C++,C裏面沒有引用),基本若是成功,則返回值爲0,有誤爲其他返回值。

 

更詳細的見MSDN

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章