Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
这种对有效类型规则的使用是否严格遵守?
C99和C11中的有效类型规则规定 没有声明类型的存储可以用任何类型写入 并且存储非字符类型的值将相应地设置存储的有效类型 抛开 INT MAX 可能小于 123456789 的事实不谈 以下代码对有效类型规则的使用是否严格符合 inclu
c
gcc
undefinedbehavior
C99
strictaliasing
为数据提供有效类型是否会产生副作用?
假设我有一大块动态分配的数据 void allocate size t n void foo malloc n return foo 我希望使用指向的数据foo作为一种特殊类型 type t 但我想稍后再这样做 而不是在分配期间这样做 为了
c
languagelawyer
lvalue
strictaliasing
如何使用(不安全)别名?
Rust 有严格的别名规则 但如果 我知道自己在做什么 我可以解决这些问题吗 我试图将一个 C 函数转换为 Rust 该函数通过从输入缓冲区读取并写入目标缓冲区来执行复杂的操作 但它有一个巧妙的优化 允许输入和输出缓冲区相同 foo src
Rust
strictaliasing
borrowchecker
int 可以别名为 unsigned int 吗? [复制]
这个问题在这里已经有答案了 编译器生成代码假设int可以通过一个别名unsigned int 下面的代码 int f int a unsigned int b a 10 b 12 return a int f int a double b
c
languagelawyer
strictaliasing
char* 和 std::uint8_t* 之间的reinterpret_cast - 安全吗?
现在我们有时都必须使用二进制数据 在 C 中 我们使用字节序列 并且从一开始char是我们的基石 定义为有sizeof为 1 时 它是字节 所有库 I O 函数都使用char默认情况下 一切都很好 但总是有一点担心 一点奇怪的事情困扰着一些
c
C11
languagelawyer
strictaliasing
uint8t
C - 两个指针之间的转换行为
2020年12月11日更新 感谢 一些程序员老兄 在评论中的建议 我的根本问题是我们的团队正在实现动态类型存储引擎 我们分配多个字符数组 PAGE SIZE 缓冲区16 对齐存储动态类型的数据 没有固定的结构 出于效率原因 我们无法执行字节
c
pointers
languagelawyer
strictaliasing
在 C++ 中放置新的派生基子对象
是否定义了放置新派生类的可简单破坏的基础对象的行为 struct base int ref struct derived public base complicated object complicated derived int r co
c
inheritance
strictaliasing
objectlifetime
placementnew
通过指针访问是否会改变严格的别名语义?
有了这些定义 struct My Header uintptr t bits struct Foo Type struct My Header header int x struct Foo Type foo struct Bar Type
c
languagelawyer
strictaliasing
与 char *、unsigned char * 和signed char * 别名
A char 和合格的变体 可以为任何东西起别名 是signed char and unsigned char 及其合格的变体 不受此限制 换句话说 我了解到申请是个好主意restrict to char 函数参数 如果我不希望它们为其他类
c
strictaliasing
这个联合是否违反了严格的别名?浮点寄存器怎么样
union Uint32 Integer Float32 Real Field 我必须使用该联合来实现一些 IEEE 技巧 这会破坏严格的别名吗 GCC 不会发出任何警告 即使使用迂腐的严格别名 也尝试过 GCC 4 5 和 4 6 但据我
c
gcc
unions
floating
strictaliasing
严格别名和指向联合字段的指针
我有一个关于严格别名规则 联合和标准的问题 假设我们有以下代码 include
c
standards
strictaliasing
缓冲区填充不同类型的数据,并且严格别名
根据标准 https en cppreference com w cpp language reinterpret cast Type aliasing 在 C 中始终是未定义的行为 例如float 指向与 a 相同的内存位置int 然后从
c
C11
c14
strictaliasing
这个指针转换是否违反了严格的别名规则?
这是 Quake III Arena 的快速反平方根实现 float Q rsqrt float number long i float x2 y const float threehalfs 1 5F x2 number 0 5F y n
c
pointers
casting
C99
strictaliasing
在不违反标准的情况下使用指向结构的指针对数组进行别名
Reading this http cellperformance beyond3d com articles 2006 06 understanding strict aliasing html我理解 如果结构具有兼容的成员 则可以为结构
c
alias
strictaliasing
将字节数组转换为 POD
比方说 我有一个无符号字符数组 代表一堆 POD 对象 例如 从套接字或通过 mmap 读取 它们代表哪些类型以及在什么位置是在运行时确定的 但我们假设每个类型都已经正确对齐 将这些字节 转换 为相应 POD 类型的最佳方法是什么 解决方案
c
strictaliasing
gcc:如何正确使用 __attribute((__may_alias__)) 以避免“取消引用类型双关指针”警告
我有一些代码使用类型双关来避免调用成员 对象 的构造函数和析构函数 除非 直到实际上需要使用该对象 它工作正常 但在 g 4 4 3 下 我收到这个可怕的编译器警告 jaf jeremy desktop g O3 Wall puns cpp
c
gcc
compilerwarnings
strictaliasing
typepunning
C 中的 OO 多态性、别名问题?
我和一位同事正在尝试实现一个简单的多态类层次结构 我们正在开发嵌入式系统 并且仅限于使用 C 编译器 我们有一个基本的设计思想 可以在没有警告的情况下进行编译 Wall Wextra fstrict aliasing pedantic 并在
c
OOP
polymorphism
strictaliasing
向函数传递两个指向同一联合成员的指针是否违反了严格的别名规则? [复制]
这个问题在这里已经有答案了 注意 学习严格的别名规则 请耐心等待 代码示例 t935 c include
c
pointers
constraints
C11
strictaliasing
如何创建一个不破坏严格别名的 uint8_t 数组?
我最近问了这个问题 使用此指针会导致热循环中奇怪的去优化 https stackoverflow com questions 26295216 using this pointer causes strange deoptimization
c
pointers
C11
strictaliasing
通过指向 int 的指针为 char 数组起别名是否合法?
我知道标准中明确允许以下内容 int n 0 char ptr char n cout lt lt ptr 那这个呢 alignas int char storage sizeof int int ptr int storage 0 ptr
c
languagelawyer
strictaliasing
1
2
3
»