This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS:结构格式

Guru**** 2964200 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/945952/ccs-structure-format

工具/软件:Code Composer Studio

大家好、

 我设置以下结构:

struct _Test{
   unsigned char Test1;
   unsigned int Test2;
   无符号长整型测试3;
};

在内存中、每个项目获得一个4字节的 RAM 点。 我们假设将分配7个字节、实际上分配了12个字节???

我将其与 CC2652配合使用

有什么想法、如何设置实际字节?

感谢您的帮助

此致

Kurt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Kurt、

    在 C 语言和任何其他语言中、这是非常正常的行为。 它称为 数据结构对齐。

    如果要使用"packed struction"、则需要说编译器应该打包结构。 但是、只有在确实需要时才应使用"数据包结构"、因为代码的效率会降低。 例如、您可以使用类似这样的内容:

    #pragma pack (push、1)
    
    typedef 结构{
    unsigned char Test1;
    unsigned int Test2;
    unsigned long Test3;
    }_test;
    
    #pragma pack (pop) 

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Jan D 发表该答复。  我可以确认它是正确的。   

    另一种查看发生了什么的方法... 使用 CG_xml 包中的 global_types_gen 实用程序。  它向您展示了程序中所有结构的布局。  对于这个特定的结构,这里是输出...

    测试(_Test) //以 MADU 为单位的大小=12
    unsigned char 测试1 //偏移=0
    unsigned int 测试2 //偏移量== 4
    无符号长整型 测试3. //偏移量=8 

    谢谢、此致、

    乔治