小编pan*_*des的帖子

在C ++中使用put_time以毫秒精度获取当前时间

我正在使用以下代码来获取C ++中的当前时间。

std::time_t t = std::time(nullptr);
std::time(&t);
std::cout << std::put_time(std::localtime(&t), "%X,");
Run Code Online (Sandbox Code Playgroud)

但是,这给了我时间HH :: MM :: SS。但是对于我的应用程序,我还想包含毫秒数。反正有使用std :: put_time获得类似HH :: MM :: SS :: msecs的东西吗?

或者在C ++程序中有几种方法可以使系统时间达到毫秒精度?

c++ c++-chrono

3
推荐指数
1
解决办法
160
查看次数

为什么两个无符号整数之和的结果类型在 Clang 和 GCC 中不同

我正在为我的模拟器编写一些低级代码,其中涉及大量 16 位和 8 位无符号整数。我-Wconversion在项目中启用了警告,所有警告都被视为错误 ( -Werror)。

考虑这个代码片段:

#include <cstdint>

int main ()
{
    uint16_t a = 4;
    uint16_t b = 6;
    uint16_t c = a + b;
}
Run Code Online (Sandbox Code Playgroud)

直到 GCC 9.3 使用-std=c++17 -Wconversion -Werroras 编译标志,出现以下错误:

<source>: In function 'int main()':
<source>:7:20: error: conversion from 'int' to 'uint16_t' {aka 'short unsigned int'} may change value [-Werror=conversion]
    7 |     uint16_t c = a + b;

      |                  ~~^~~
Run Code Online (Sandbox Code Playgroud)

但对于和 的任何编译器版本(测试直到),相同的代码不会给出此错误链接到编译器资源管理器。GCC 10.1Clang …

c++ gcc clang compiler-warnings

1
推荐指数
1
解决办法
982
查看次数

标签 统计

c++ ×2

c++-chrono ×1

clang ×1

compiler-warnings ×1

gcc ×1