小编Ele*_*ent的帖子

Gcc 在结构中隐藏成员

目前,我正在使用嵌入式设备。

我正在创建自己的“寄存器表示”来学习 C 语言中的过程。

我通过放置在给定位置的结构来执行此操作:

struct myIo {
   u32 flagA : 1;
   u32 fieldB : 7;
   u32 reserved : 24;
   u32 regB;
};

struct __attribute__((section("sec"))) myIo MyIo;
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但我想知道如何删除

reserved
Run Code Online (Sandbox Code Playgroud)

字段,而不影响硬件强制执行的填充/对齐。

我的问题是:

我如何设计一个具有“隐藏”字段的结构,当我访问该结构时,这些字段不会显示。

在本质上:

MyStruct.reserved = val;
Run Code Online (Sandbox Code Playgroud)

或者

val = MyStruct.reserved;
Run Code Online (Sandbox Code Playgroud)

应该抛出编译器错误并输入

MyIo.
Run Code Online (Sandbox Code Playgroud)

不应在 Eclipse CDT C/C++ 中显示“自动完成”选项。

我正在使用 Arm Cross GCC 和 Eclipse CDT C/C++。

我擅长符合 C 标准的解决方案、编译器编译指示解决方案和预处理器解决方案。

c hidden gcc struct

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

从“基”运算符派生运算符 - 速度损失

我的教授表示,可以从单个“基本”运算符派生出迭代器的“所有”运算符,而不会因内联而造成速度损失。

他说:

// To implement ==, != , >, <, >=, <= only only a few cases based on attrbiutes are required
// a == b       ==      !(a>b)&&!(a<b)
// a != b       ==      !(a==b)
// a < b        ==      Implemented as "actual" operator
// a > b        ==      b < a //Argument swap!
// a >= b       ==      a > b || a == b
// a <= b       ==      a < b || a == b
Run Code Online (Sandbox Code Playgroud)

与以下情况相比,不会造成速度损失:

// To …
Run Code Online (Sandbox Code Playgroud)

c++ performance operator-keyword

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

Python:如何传递带有两个参数作为参数的函数

我有个问题:

我需要在 python 中实现一个函数,它打印参数的标量倍数 - 参数本身就是一个具有签名的函数:

def innerF(a,b):
    return x
Run Code Online (Sandbox Code Playgroud)

标量乘数是函数内的常数 - 例如

return 55 * x

现在是我似乎不明白的部分:调用 Sytanx 需要是:

print( outerF(innerF)(a,b))

所以总结一下

def innerF(a,b):
    return a + b

def outerF( #What goes here? ):
    return 55* #How two call the innerF?

print(outerF(innerF)(a,b))
Run Code Online (Sandbox Code Playgroud)

到目前为止我所知道的:

  • 我可以将innerF和a,b作为单独的参数传递给outerF,例如

    def outerF(innerF,a,b): 返回 53* innerF(a,b)

我不明白的是:

innerF(outerF)(a,b)我完全不知道externalF 调用的签名。我也找不到参考。

预先非常感谢您!

python arguments function

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

标签 统计

arguments ×1

c ×1

c++ ×1

function ×1

gcc ×1

hidden ×1

operator-keyword ×1

performance ×1

python ×1

struct ×1