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.

[参考译文] 编译器/TMS320F2.8377万D:__byte的说明

Guru**** 2611705 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/640799/compiler-tms320f28377d-clarification-of-__byte

部件号:TMS320F2.8377万D

工具/软件:TI C/C++编译器

根据C2000 wiki:  

问:__byte的原型是 &__byte(int *array, unsigned int byte_index)。 “&”是否为拼写错误?

答: 这不是打字错误,所以__byte内在过程返回C++样式引用,即使在C模式下也是如此。

如果返回值确实是C++样式引用,为什么以下内容会导致编译器错误?

内部测试[4];
int &x =_字节(测试,0);

"../main.cpp,第139行:错误#436:"int &"类型的引用(非const-qualified)无法使用"int"类型的值初始化

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

    RallyTronics 说:
    如果返回值确实是C++样式引用[/QUOT]

    当在赋值左侧以外的任何位置使用时,__byte内在过程仅返回int。  仅当在赋值的左侧使用时,它才会充当C++引用。  即使在这种情况下,您也不会在使用时编写&。  也许从C++中借用&引用运算符不是解释__byte内在过程的最佳方式。  我对这种困惑表示歉意。

    谢谢,此致,

    -George

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

    谢谢,这是我的预期。 尝试过载字节数组类的[]运算符时出现问题:


    内部运算符[&O](int I)

    返回__byte(_store, i);
    }