如果我们在PIC单片机中定义一个变量"整数",那么当我在Atmel微控制器中定义相同的"int"变量时,它的大小是否相同?或者它会有不同的尺寸?
这个问题是在嵌入式系统的采访中,答案应该是什么?
我有点困惑!
它取决于微控制器还是编程语言?在所有不同的编程语言中,相同的变量类型如整数是否相同?
这不是同一个问题,因为嵌入式控制器有点不同.
我知道在C++ sizeof(char)
中保证是1,但它是唯一的情况还是有其他内置类型保证具有确切的大小?
特别是语言要求sizeof(bool) == 1
还是sizeof(int) == 4
要求,还是实施细节?
我想保存f
一个以i
不擦除浮点数的方式命名的数组的第三个元素中命名的float变量的值(即,我不想保存1
而不是1.5
)。之后,以我们1.5
在输出中看到的方式完成最后一行(不要使用cout<<1.5;
或cout<<f;
类似的技巧!)
float f=1.5;
int i[3];
i[2] = ... ;
cout<<... ;
Run Code Online (Sandbox Code Playgroud)
有人知道吗?
C++中的std :: vector将对象存储在连续的内存位置.但是当我打印地址时,我发现这不会发生.请告诉我原因.代码在这里:
#include <iostream>
#include <vector>
using namespace std;
class a
{
int val1;
};
vector<a> records(10);
int main()
{
int i;
for(i=0;i<12;i++)
cerr<<"address"<<i<<"="<<&records[i]<<endl;
}
Run Code Online (Sandbox Code Playgroud)
我得到的输出在内存中不连续.
我用c ++编写了一个程序来输出你告诉它的fibonacci序列中的数字.它一直工作到大约第47个数字,然后它打印出完全不同的数字,甚至是负数,并且它们都没有超过9或10个单独的整数.这是代码
#include <iostream>
int a = 0;
int b = 1;
int c;
int var = 0;
int num;
void fibonacci()
{
using namespace std;
c = a;
a = a + b;
b = c;
var += 1;
}
void loop()
{
using namespace std;
for (int iii=0; iii<num; iii++)
fibonacci();
}
int main()
{
using namespace std;
cout << "What fibonacci number do you want to know? ";
cin >> num;
cin.get();
loop();
cout << "" << …
Run Code Online (Sandbox Code Playgroud) 阅读以下资源,它说int /指针的大小可能因编译器而异:
http://www.c4learn.com/c-programming/c-size-of-pointer-variable/
为什么是这样?
我理解C只定义了一个类型应该保存的最小和最大数量,但为什么一个编译器选择将例如int设置为2个字节而另一个设置为4?一个人比另一个人有什么优势?
我从书中听到过关于C/C++中整数类型的最小尺寸的介绍
下面的大小以字节为单位:
sizeof(char) >= 1
sizeof(short) >= 2
sizeof(long) >= 4
sizeof(long long) >= 8
但我无法在标准中找到这些保证.那么编译器是否需要保证在C++ 98/C++ 2003/C89/C99标准中定义?
我看过这个链接计算机中的字大小是什么意思?.它定义了字大小.我试图用比特表示非常长的字符串,其中每个字符由4位表示并保存在长整数或整数数组中,以便我可以在需要时提取我的字符串.我可以将这些位保存为整数数组或长数组.
- 如果我使用长数组(8字节),我将能够在一个长数组中保存8*4 = 32位.
- 但是如果我使用int,我将只能保存4*4 = 16位.
现在,如果我的Word大小= 32,那么我应该只使用int而不是长.