相关疑难解决方法(0)

在C++中使用C头时,我们应该使用std ::或全局命名空间中的函数吗?

C在某种程度上并不完全是C++的一个子集.因此,我们可以通过更改名称(stdio.hto cstdio,stdlib.hto cstdlib)来使用C++中的大多数C函数/头文件.

我的问题实际上是一种语义.在C++代码(使用GCC编译器的最新版本),我可以打电话printf("Hello world!");,并std::printf("Hello world!");和它的工作原理完全一样.在我使用它的参考中也显示为std::printf("Hello world!");.

我的问题是,它是否更适合std::printf();在C++中使用?有区别吗?

c++ std language-lawyer

106
推荐指数
3
解决办法
6042
查看次数

WORD分别在32/64位操作系统中包含多少位?

有人有明确的答案吗?

有人说在32位操作系统上,WORD意味着16位,是吗?

cpu-word

35
推荐指数
1
解决办法
6万
查看次数

错误:未在此范围内声明'INT32_MAX'

我收到了错误

error: 'INT32_MAX' was not declared in this scope
Run Code Online (Sandbox Code Playgroud)

但我已经包括在内了

#include <stdint.h>
Run Code Online (Sandbox Code Playgroud)

我正在使用命令编译(g ++(GCC)4.1.2 20080704(Red Hat 4.1.2-44))

g++ -m64 -O3 blah.cpp
Run Code Online (Sandbox Code Playgroud)

我需要做任何其他事情才能编译吗?还是有另一种C++方式来获取常量" INT32_MAX"?

谢谢,如果有什么不清楚,请告诉我!

c++

30
推荐指数
4
解决办法
5万
查看次数

如何检查是否定义了固定宽度的整数

在 C++ 中,固定宽度整数被定义为optional,但我似乎无法找到推荐的方法来检查它们是否被实际定义。

检查固定宽度整数是否可用的便携式方法是什么?

c++ types cstdint stdint c++11

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

在C++中正确使用/包含uint64_t

作为参考,我在C++ 11中进行编译.

我开始使用电路板的位图表示作为以片段为中心的方法编写国际象棋引擎.似乎使用的合适类型是uint64_t,但是,在网上搜索了一下之后,我对这里的"最佳实践"有点不确定.

我开始为游戏板定义.hpp文件.首先,我对不同代码似乎表现出来的类似行为感到困惑.

#include <cstdint>
uint64_t board;
Run Code Online (Sandbox Code Playgroud)

#include <cstdint>
std::uint64_t board;
Run Code Online (Sandbox Code Playgroud)

编译得很好.两者有什么区别?这个比那个好吗?

另外,我注意到我甚至不需要包含cstdint就可以使用uint64_t:

#include <iostream>
uint64_t board;
Run Code Online (Sandbox Code Playgroud)

#include <iostream>
uint64_t std::board;
Run Code Online (Sandbox Code Playgroud)

两者都编译得很好,就像上面的2个cstdint示例一样.因此,我对如何在C++ 11中使用uint64_t感到困惑,以及为什么所有这四个例子都完全相同.我被告知你想使用cstdint,但似乎iostream也提供了类型def?是否存在"最佳/最安全"的特定方式(例如,在名称空间冲突方面)?

c++ c++11

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

Linux 中的未知类型名称 uint64_t 和 uint16_t uint8_t

我正在尝试在 Ubuntu 环境中编译一个程序,但我有一些错误提示unknown type name 'uint64_t'unknown type name 'uint16_t'即使我已经包含了cstdint我相信的任何其他要求。似乎是 C++ 库支持问题。

有谁知道如何解决这一问题?

c++ linux

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

C++ 11 uint类型vs u_int

我只是偶然发现了类型,u_int8_t因为它没有在Windows + MinGW中编译(但在Linux下编译得很好).根据该站点,C++ 11标准定义了类型uint8_t.我只是使用后者,一切正常.

出现的问题是:

  1. 有什么区别u_int8_tuint8_t
  2. 有没有理由(除了遗留代码)u_int8_t
  3. uint8_t如果我使用C++ 11编译器(在不同的操作系统或架构上),可以安全地假设存在吗?
  4. 上述问题的答案是否也适用于其他类型(intX_tuintX_t)?

uint cstdint c++11

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

我应该使用C类型(uint8_t /.../ uint64_t)还是(u_int8_t /.../ u_int64_t)?

我的GNU-Linux平台(Debian的拉伸)有C型u_int8_t,u_int16_t,u_int32_tu_int64_t在文件中定义sys/types.h的同时uint8_t,uint16_t,uint32_tuint64_t中定义stdint.h.我发现这些类型在练习X86-64汇编语言和与C交互的过程中很有用.有什么理由我更喜欢一个头文件而不是另一个头文件(无论是'最佳实践',可移植性等)?C++的答案有何不同?

c c++

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

标签 统计

c++ ×6

c++11 ×3

cstdint ×2

c ×1

cpu-word ×1

language-lawyer ×1

linux ×1

std ×1

stdint ×1

types ×1

uint ×1