相关疑难解决方法(0)

枚举和定义语句之间的区别

在C/C++中使用define语句和枚举语句有什么区别(与C或C++一起使用时有什么不同)?

例如,何时应该使用

enum {BUFFER = 1234}; 
Run Code Online (Sandbox Code Playgroud)

过度

#define BUFFER 1234   
Run Code Online (Sandbox Code Playgroud)

c c++ enums c-preprocessor

45
推荐指数
4
解决办法
3万
查看次数

使用常量表达式为其大小声明数组

我在数组周围有一个newtype包装器.我假设我可以使用size_of而不是手动传递数组的大小,但编译器认为我错了.

use std::mem::{size_of, size_of_val};

#[repr(C, packed)]
struct BluetoothAddress([u8, ..6]);

fn main() {
    const SIZE: uint = size_of::<BluetoothAddress>();

    let bytes = [0u8, ..SIZE];
    println!("{} bytes", size_of_val(&bytes));
}
Run Code Online (Sandbox Code Playgroud)

(围栏链接)

我每晚都在使用:rustc 0.13.0-nightly(7e43f419c 2014-11-15 13:22:24 +0000)

此代码失败,并显示以下错误:

broken.rs:9:25: 9:29 error: expected constant integer for repeat count, found variable
broken.rs:9     let bytes = [0u8, ..SIZE];
                                    ^~~~
error: aborting due to previous error
Run Code Online (Sandbox Code Playgroud)

数组表达式Rust参考使我认为这应该工作:

[expr ',' ".." expr]表单中,后面的表达式".."必须是可以在编译时计算的常量表达式,例如文字或静态项.

arrays rust rust-obsolete

7
推荐指数
1
解决办法
3370
查看次数

标签 统计

arrays ×1

c ×1

c++ ×1

c-preprocessor ×1

enums ×1

rust ×1

rust-obsolete ×1