相关疑难解决方法(0)

snprintf和Visual Studio 2010

我很遗憾被迫使用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年?

c visual-studio-2010

100
推荐指数
4
解决办法
8万
查看次数

#define _snprintf_s到snprintf

我正在将一个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.

谢谢!

c visual-c++

2
推荐指数
2
解决办法
8385
查看次数

标签 统计

c ×2

visual-c++ ×1

visual-studio-2010 ×1