我正在try 为一台非常奇怪的机器创建(tinyc的新后台)一个c编译器.它唯一的可编址单元是16位字,即它不能在8位字节级别上编址.它的自然int大小也是16.

据我所知,c标准规定char必须至少为8位,Short必须至少为16位.但没有任何内容表明sizeof(char)不能= sizeof(Short).

即使是思考这样的系统也感觉很奇怪,我们都有一个很强的心理模型来了解ram中的chars和短裤等的样子.

我的替代方案是在数据类型上保持"正常",并通过提取单词并将其分割来模拟8位行为.我的问题是,没有位移或旋转指令,所以做起来要花费very美元(为了对一个字节进行字提取而模拟右移,甚至需要至少32条指令,测试和设置每个位,或者进行长时间的左旋转).感觉我的very MHz fpga会以2 MHz的速度运行

推荐答案

char为16位且Short也为16位的c环境合法吗

是的

C++相关问答推荐

如何避免重新分配指针数组时,我们从一开始就不知道确切的大小

通过MQTT/蚊子发送大文件—限制在4MB

VS代码C/C++扩展intellisense无法检测环境特定函数'

为什么GCC在每次循环迭代时都会生成一个数组的mov&S使用[]访问数组?(-03,x86)

进程在写入管道时挂起

在每种If-Else情况下执行语句的最佳方式

如何确保在C程序中将包含uft8字符的字符串正确写入MySQL?

C将数组传递给函数以修改数组

C";中的ANN运行时判断失败#2-变量outputLayer;周围的堆栈已损坏.运行后出错

用于计算位数和的递归C函数

Dlsym()的手册页解决方法仍然容易出错?

C中的数组下标和指针算法给出了不同的结果

Matlab/Octave对conv2函数使用哪种方法?

为什么GCC不能在 struct 初始值设定项中以sizeof作为条件的三进制中处理复合文字的编译时求值?

WSASocket在哪里定义?

当 n 是我们从用户那里获得的整数时,创建 n 个 struct 参数

如何使用 VLA 语法使用 const 指针声明函数

(GNU+Linux) 多个线程同时调用malloc()

C11 嵌套泛型

C 预处理器中的标记分隔符列表