小编Gam*_*man的帖子

C++为什么人们不在头文件名中使用大写?

我想知道为什么人们不在头文件的名称中使用大写.我看到许多头文件的名称只有小写.但我认为如果用大写字母写它们会更容易,比如"BaseClass.h","SubClass.h",而不是"baseballs.h","subclass.h".这是为什么?或者只是我看到的头文件只以小写命名?

c++ naming header lowercase

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

L在"<任何十六进制数> L"中表示什么

我正在查看一些c ++代码,我遇到了这个:

if( (size & 0x03L) != 0 )
    throw MalformedBundleException( "bundle size must be multiple of four" );
Run Code Online (Sandbox Code Playgroud)

L在十六进制值之后的含义是什么?

它是如何改变价值的0x03

c++ hex

5
推荐指数
2
解决办法
3825
查看次数

C / C ++中的内存对齐

我正在阅读《游戏编码完整版》第4版。有一个关于内存对齐的主题。在下面的代码中,作者说,第一个结构确实很慢,因为它既没有位对齐也没有字节对齐。第二个不是位对齐而是字节对齐。最后一个很快,因为两者都有。他说,没有编译指示,编译器将对齐内存本身,这会浪费内存。我无法真正获得计算结果。

这是文本的一部分:

如果让编译器通过添加未使用的字节来优化SlowStruct,则每个结构将是24个字节而不是14个字节。在第一个char变量之后填充七个额外的字节,并在末尾添加其余字节。这样可以确保整个结构始终以8字节为边界开始。这大约是浪费空间的40%,这都是由于成员变量的粗心排序所致。

这是粗体字的结论行:-

不要让编译器浪费宝贵的内存空间。让您的一些 脑细胞发挥作用,并对齐您自己的成员变量。

请让我看一下计算并更清楚地解释填充概念。

码:-

#pragma pack(push, 1)
struct ReallySlowStruct
{
    char c : 6;
    __int64 d : 64;
    int b : 32;
    char a : 8;
};

struct SlowStruct
{
    char c;
    __int64 d;
    int b;
    char a;
};

struct FastStruct
{
   __int64 d;
   __int b;
   char a;
   char c;
   char unused[2];
};
#pragma pack(pop)
Run Code Online (Sandbox Code Playgroud)

c c++ memory memory-management

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

是否有一个大会ISA学习?如果没有,我应该学习哪一个?

我已经在大学里学习了8086英特尔处理器的汇编编程.我现在正试图修改它.

我听说汽车嵌入式系统需要汇编,所以我想知道哪种方式可以学习它是最好的?我不需要浪费时间,因为我想找份工作.

修改8086大会真的有帮助吗?或者转向32位x86组件更好?

谢谢.

embedded assembly 32-bit x86-16 automotive

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