问题标签 [tr24731]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2308 浏览

c - sprintf_s() 隐式声明警告

我有一个 C 代码,其中有这一行。

这里,varchar*类型,local_filecounterint类型。

当我运行代码时,它给了我这个警告:

警告:函数“sprintf_s”的隐式声明在 C99 [-Wimplicit-function-declaration] 中无效

这个警告是什么,我怎样才能摆脱它?

0 投票
2 回答
1310 浏览

gcc - “字符串安全函数”和 gcc

我正在使用 CodeBlocks 和 GCC 编译器。我想使用“字符串安全函数”,例如strlen_s, strcpy_s,但编译器显示错误:

对 strlen_s 的未定义引用。

然后我在代码中添加一行:

#define __STDC_WANT_LIB_EXT1__ 1

以及在编译器选项(设置 -> 编译器 -> 全局编译器设置 -> 其他编译器选项)中编写以下内容:

-std=c11

在我正在阅读的书中,有一段代码可以检查我的编译器是否支持这些功能。代码如下:

当我运行此代码时,我看到"optional functions are defined"。我还重新安装了 CodeBlocks,但仍然出现这些错误。

我应该安装另一个编译器吗?如果我应该,哪一个是最好的?

0 投票
1 回答
493 浏览

c - C4996,不推荐使用 fopen:为什么?(不是:如何压制)

什么是不安全fopenfopen_s

如何以安全的方式使用 fopen(如果可能)?

(我不想知道如何抑制警告 - 有足够的 stackoverflow 文章可以回答这个问题)

编辑:问题被关闭为“基于意见”(即使只有一个答案,我没有看到太多意见)。我会尝试改写一下:如果有人可以说明如何/在哪里可以找到 Microsoft (谁弃用该功能)解释为什么它被弃用的文档,那就太好了。

0 投票
2 回答
5400 浏览

c - vsnprintf 和 vsprintf_s 有什么区别?

我目前正在编写用于字符串操作的代码。作为其中的一部分,我正在使用vsnprintf().

但是,编译器会在错误消息下方闪烁:

结果与vsprintf_s()预期不符。

vsnprintf()和 和有什么不一样vsprintf_s()

0 投票
1 回答
8508 浏览

c - __STDC_LIB_EXT1__ 在 gcc 和 clang 中的可用性

由于快速谷歌搜索没有找到任何东西,我会在这里尝试询问(因为很多参与 gcc/clang 的人在这里闲逛) - __STDC_LIB_EXT1__gcc/clang 中的状态是什么?我们正在开发一个跨平台应用程序,我想使用其中的一些安全边界检查功能<stdio.h>(奇迹般地在 Visual Studio 2017 上可用),但无法使用 Xcode 9.2 编译代码。我假设 Xcode 使用的 clang 版本可能已经过时,但 Ubuntu 上的 gcc 6.3.0 的行为相同。我正在尝试将tmpnam_s与以下示例一起使用:

但是由于未定义宏而编译失败:

我做错了什么还是这个功能集的支持很差?

0 投票
3 回答
286 浏览

c - 开发 C++ strtok_s 抛出 [警告] 赋值使指针从整数而不进行强制转换

我有以下程序:

当我使用 Visual Studio 2015 编译它时,它会编译,没有任何警告。但是当我使用 Dev C++ 5.11 编译它时,我在第 10 行收到以下警告:

[警告] 赋值使指针从整数不进行强制转换

有没有解决该警告的解决方案?

0 投票
0 回答
43 浏览

c - 如果第一个 scanf_s 包含多个单词,则第二个 scanf_s 将跳过

每当用户输入多个单词时,它将跳过第二个 scanf_s。例如,当它询问“请输入您的姓名:”并且如果用户输入“John”就可以了,但是如果用户输入“John Cena”第二个要求 IC/Passport 的 scanf_s,它会跳过它,我知道这与下一行有关 \n 输入按钮问题,但我无法修复它...

0 投票
2 回答
575 浏览

c - strtok_s 在 os x 上未定义

我正在尝试使用应该在中定义的 C11 函数strtok_s<string.h> ,但是当我尝试使用它时,clang 给了我一个链接错误。编译这个程序:

给我这个错误:

我在 OS X 10.12.6 上使用 clang 8.1.0。我究竟做错了什么?

0 投票
1 回答
4915 浏览

c - 为什么 gcc(或 glibc)没有实现 _s 函数?

_s 函数,例如scanf_sprintf_s似乎是可选标准。MSVC 已经实现了这些功能,但 gcc 没有。

是否有不实施安全功能的具体原因?scanfglibc 足够安全吗?

0 投票
1 回答
552 浏览

c - scanf_s() 缓冲区在哪里定义?

如果我无法访问互联网,但知道我想使用该scanf_s()函数从键盘 ( stdin) 获取输入,我怎么知道在哪里声明缓冲区?

目前,当我进入scanf_s()Visual Studio 中的函数时,我看到了:

所以,我可以看到它scanf_s()需要 1 个已定义的参数 ( char const * _Format),在这种情况下,它可能是一些占位符,例如 be "%s",但第二个参数没有任何内容 - 用于存储扫描结果的缓冲区的内存地址。