相关疑难解决方法(0)

C中的"注册"关键字?

什么是register关键字在C语言吗?我已经读过它用于优化,但在任何标准中都没有明确定义.它是否仍然相关,如果是,你什么时候使用它?

c memory keyword

255
推荐指数
10
解决办法
11万
查看次数

C auto关键字在哪里使用?

在我的大学时代,我读到了auto关键词,随着时间的推移,我实际上忘记了它是什么.它被定义为:

将局部变量定义为具有本地生命周期

我从来没有发现它在任何地方都被使用过,它是否真的被使用过,如果是的话那么它在哪里被使用?在哪些情况下?

c

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

如果a未初始化,是^ a还是aa未定义的行为?

考虑这个程序:

#include <stdio.h>

int main(void)
{
    unsigned int a;
    printf("%u %u\n", a^a, a-a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

是不确定的行为?

从表面上看,它a是一个未初始化的变量.所以这指向未定义的行为.但是a^a并且a-a等于0所有的价值a,至少我认为是这样的.有可能有某种方式来证明行为是明确定义的吗?

c undefined-behavior

74
推荐指数
2
解决办法
3332
查看次数

已弃用的注册关键字C++ 11的替换

我已经读过(这里,例如)register在C++ 11中不推荐使用该关键字.因此,在标准的较新版本中是否存在与此存储类说明符等效的内容,或者它是否由编译器处理?

c++ c++11

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

是否仍使用了register关键字?

刚刚遇到C++中的register关键字,我想知道这似乎是一个好主意(将某些变量保存在寄存器中)肯定是编译器默认执行此操作?

所以我想知道这个关键字是否还在使用?

c++ performance caching latency

11
推荐指数
4
解决办法
4712
查看次数

将值作为参数传递时出现“类型名称不允许指定存储类”错误

我一直在为 6502 编写仿真器的基础。我有一个函数,我想用它来设置给定寄存器的零标志和负标志。该函数包含在一个名为 的结构体中CPU

我的代码目前看起来像这样:

#include <stdio.h>
#include <stdlib.h>
#include <cstdint>

typedef uint8_t BYTE;
typedef uint16_t WORD;
typedef uint32_t DWORD;

struct CPU {
   BYTE SP; // stack pointer
   WORD PC; // program counter
  
   BYTE A, X, Y; // registers

   // some more registers, flags, etc.
   
   void SetStatusFlags(BYTE register) {
      Z = (register == 0);
      N = (register & 0b10000000) > 0;
   }

   // some other functions that call this one...
};
Run Code Online (Sandbox Code Playgroud)

这会导致错误:

error: type name does not allow …
Run Code Online (Sandbox Code Playgroud)

c++

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

标签 统计

c ×3

c++ ×3

c++11 ×1

caching ×1

keyword ×1

latency ×1

memory ×1

performance ×1

undefined-behavior ×1