我很遗憾被迫使用VS 2010进行项目,并注意到以下代码仍然不使用非标准兼容编译器构建:
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
char buffer[512];
snprintf(buffer, sizeof(buffer), "SomeString");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
(编译错误:C3861:'snprintf':找不到标识符)
我记得这是VS 2005的情况,我很震惊地看到它还没有被修复.
有没有人知道微软是否有计划将他们的标准C库迁移到2010年?
我正在将一个win32应用程序移植到linux上,而不是在每个_snprintf_s周围都有一堆#ifdef,我想知道是否有办法以某种方式#define它到snprintf.
所以像 -
#define _snprintf_s(1,2,3,4,5) snprintf(1,2,4,5)
Run Code Online (Sandbox Code Playgroud)
snprintf不存在第三个参数,即要存储的最大字符数或_TRUNCATE.
这种方法对吗?我能做这样的#define吗?如果是这样,有人可能会指出我应该怎么做呢?
我经历了这个问题,知道我必须小心这些#defines.
谢谢!