gpt4 book ai didi

c++ - c/c++ 中什么是类型安全的

转载 作者:行者123 更新时间:2023-12-04 22:39:12 25 4
gpt4 key购买 nike

什么是类型安全?

它是什么意思,为什么它很重要?

在我的代码中发生错误 此函数或变量可能不安全。不安全是什么意思?

#include <ctime> 

int compareValues() {

time_t now = time(0);

tm* ltm = localtime(&now); //Localtime: This function or variable may be unsafe

if ((_year == ltm->tm_year) && (_month == 1 + ltm->tm_mon) && (_day == ltm->tm_mday)) {
return 1;
}
}

如果我输入 #define _CRT_SECURE_NO_WARNINGS我的代码错误被禁用,但不安全意味着什么,什么是 #define _CRT_SECURE_NO_WARNINGS做 ?

最佳答案

这与类型安全无关。
localtime()使用静态存储作为其返回值;这通常不是不安全的,但在使用多线程时可能会出现问题。

为此,微软希望人们使用 localtime_s()相反,它使用用户提供的缓冲区。

但是,如果你真的需要从并发线程调用这个函数,我会推荐使用 localtime_r()如果你想便携(至少符合 Posix),因为 localtime_s()不是。 *_r函数族通常表示函数的可重入版本。基本上,重入是一个功能,即一个函数可以被调用,而它已经在其他地方被调用(运行)了。可重入代码也始终是线程安全的。

关于c++ - c/c++ 中什么是类型安全的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58446354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com