ysa*_*sap 10 c gcc fixed-point c99
值得庆幸的是,complex类型修饰符被引入C99标准.我不明白为什么决定省略对定点运算的支持(特别是支持分数类型,如1.15 {signed}或0.32 {unsigned}),这些类型对于DSP编程是如此重要?
GCC是否通过扩展支持这些?
为了解决"GCC是否通过扩展支持这些问题"的问题,我们可以引用"使用GNU编译器集合"(对于GCC版本4.4.0 - 添加的要点澄清).(GCC 4.9.0 URL等效于固定点 - 使用GNU编译器集合(GCC),但该部分是6.15而不是5.13.)
§5.13定点类型
作为扩展,GNU C编译器支持ISO/IEC DTR 18037的N1169草案中定义的定点类型.随着技术报告草案的变化,对GCC中定点类型的支持将不断发展.任何目标的调用约定也可能会发生变化.并非所有目标都支持定点类型.
定点类型是:
short _Fract,_Fract,long _Fract,long long _Fract,unsigned short _Fract,unsigned _Fract,unsigned long _Fract,unsigned long long _Fract,_Sat short _Fract,_Sat _Fract,_Sat long _Fract,_Sat long long _Fract,_Sat unsigned short _Fract,_Sat unsigned _Fract,_Sat unsigned long _Fract,_Sat unsigned long long _Fract,short _Accum,_Accum,long _Accum,long long _Accum,unsigned short _Accum,unsigned _Accum,unsigned long _Accum,unsigned long long _Accum,_Sat short _Accum,_Sat _Accum,_Sat long _Accum,_Sat long long _Accum,_Sat unsigned short _Accum,_Sat unsigned _Accum,_Sat unsigned long _Accum,_Sat unsigned long long _Accum.定点数据值包含小数和可选的整数部分.定点数据的格式各不相同,取决于目标机器.
您可以在此处找到提案草案的文本.
它已被讨论/提出(例如,在N938,N953中),但那些论文仅提出它作为扩展,而不是主要标准的补充.这些似乎导致它被纳入N1169,这是TR 18037("支持嵌入式处理器的扩展")的草案,但这不被认为是完整的(草案似乎没有更新而).
我的猜测(尽管这只是猜测)是它的工作可能会被放弃(至少暂时)以集中精力完成C11.现在恢复工作是否可能取决于是否还有人仍然关心.编写和提交基于那些涵盖更多细节的早期论文,提供更多支持证据等的论文,可能有助于重新启动它(尽管我显然无法保证任何事情).