可能重复:
我是C++的新手,我看了一个示例代码,看到了长类型的代码。上面写着这样的东西
long long deviceId;
这个和长型一样吗?我正在尝试从java(Android)向我的服务器发送一个设备id。在java中,设备id是长类型(8字节),我将其放入缓冲区,如下所示
bytebuffer.putLong(Long.valueOf(deviceId));
我正试图使用c++在我的linux服务器上解析这一点。
提前谢谢。
为了获得一个数字的精度和规模,我使用了这个简单的程序。但是,当将数字转换为字符串时,它会产生编译错误。
g++ precision.cpp
precision.cpp: In function ‘int main()’:
precision.cpp:6: error: ‘to_string’ was not declared in this scope
当我用-std=c++0x开关编译时
g++ precision.cpp -std=c++0x
precision.cpp: In function ‘int main()’:
precision.cpp:6: error: call of
我试图用C++ for Windows(MinGW)和Linux(g++)编写跨平台代码。我被用于将Linux中的64位整数定义为"long",但是当我迁移到MinGW时,sizeof(long)返回了4个字节。然后,我发现我可以使用"long long“或"__INT64”来定义MinGW中的64位整数。我有两个问题:
1.-为和Linux定义64位整数的最可移植方式是什么?我目前使用的是#ifdef,但我不知道这是否是最好的方法:
#ifdef LINUX
#define INT64 long
#elif WIN32
#define INT
我是C和C++的初学者,我不知道如何使用JVMTI。我想获得java对象的物理内存位置(十六进制)。有可能吗?我不想得到像“从这个分析器那里得到它”这样的答案.到目前为止,我正在linux终端中使用以下命令:
java -showversion -agentpath:../CPrg/DLL/bin/Debug/libDLL.so SimpleMemAlloc
libDLL.so是我使用c++创建的库,在这里我使用java应用程序运行它。它实际上有效,它与我的代码一起运行,但我不知道如何获得我想要的数据。
例如,我使用以下简单代码:
public class SimpleMemAlloc{
我正在尝试在C中使用64位整数,但我得到了关于是否可以这样做的混合信号。
当我执行printf时:
printf("Size of long int:%d\nSize of long long int:%d\n\n",(int)sizeof(long int), (int)sizeof(long long int));
我得到的回答是:
long int的大小:4 long long int的大小:8
这让我觉得long long int有8个字节= 64位。
但是,当我尝试声明以下变量时:
long long int a2 = 0x00004444;
long long in
编辑:我把上报给了GCC布格斯拉。现在已经修复了。
以下示例不能使用gfortran 4.8.4编译:
PROGRAM test
USE ISO_C_BINDING
INTEGER(C_INT128_T) :: CINT128T
INTEGER, PARAMETER :: I16B = KIND(CINT128T)
INTEGER(I16B) :: a, b
a = 127
b = 0
b = IBSET(b,0)
a = IBCLR(a,0)
CALL MVBITS(a,0,3,b,0)
END PROGRAM test
下面是我得到的结果:
$ gfo
我尝试用"g++ -std=c++11 -o w w.cpp“编译下面的程序,得到错误”cc1plus: error: unrecognized command line option "-std=c++11“”。已尝试使用g++ -Dstd=c++11 -o w w.cpp进行编译,并获得以下错误集:
In file included from /usr/lib/gcc/i686-redhat-linux/4.4.7/../../../../include/c++/4.4.7/iosfwd:41,
from /usr/lib/gcc/i686
temp_holder.clear();
temp_holder << n;
n_str = temp_holder.str();
int f = count(n_str.begin(), n_str.end(), a);
这是我的代码,这是g++输出:
In file included from /usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/algorithm:63:0,
from trintatres.cpp:5:
/usr/l
在今天的跨平台C++ (或C)世界中,我们有:
Data model | short | int | long | long long | pointers/size_t | Sample operating systems
...
LLP64/IL32P64 16 32 32 64 64 Microsoft Windows (x86-64 and IA-64)
LP64/I32LP64 16 32 64 64 64
我对C++中的垃圾收集器很好奇。我可以理解他们可以通过使用他们的分配方法来控制内存分配。就像Boehm
#include "gc.h"
#include <assert.h>
#include <stdio.h>
int main()
{
int i;
GC_INIT(); /* Optional on Linux/X86; see below. */
for (i = 0; i < 10000000; ++i)
{
int **p = (int **) GC_MALLOC(sizeof(int *));
最近,我无意中遇到了“在此范围内未声明”的多次错误,如下所示:
/usr/include/c++/9/ext/string_conversions.h:84:25: error: ‘ERANGE’ was not declared in this scope
84 | else if (errno == ERANGE
| ^~~~~~
In file included from /usr/include/c++/9/system_error:39,
from /usr/include