【发布时间】:2016-02-09 20:19:39
【问题描述】:
我发现strncpy_s()在VS2013下被定义为
errno_t __cdecl strncpy_s
(
_Out_writes_z_(_SizeInBytes) char * _Dst,
_In_ rsize_t _SizeInBytes,
_In_reads_or_z_(_MaxCount) const char * _Src,
_In_ rsize_t _MaxCount
);
rsize_t 是:
typedef size_t rsize_t;
我认为这是 Visual Studio 的一个技巧。但是,我发现这个函数在这个page上定义如下
errno_t strncpy_s
(
char *restrict dest,
rsize_t destsz,
const char *restrict src,
rsize_t count
);
为什么在这里定义rsize_t?
如果在这里使用size_t 会怎样?
有什么特殊情况可以使用这个rsize_t?
【问题讨论】:
-
这不是特定于视觉工作室的
typedef吗?它似乎没有出现在我的头文件中,也似乎没有出现在我的标准草稿中。 -
您可能(或可能不会)在Do you use the TR-24731 "safe" functions? 中找到一些有用的信息,至少,如果您担心可移植性,您应该注意其中突出显示的一些问题。