String 最适合填充字符串的字符
填充字符串时最合适的字符是什么(最好是0到127的范围)?我希望/更喜欢它是非打印字符,并且没有与之关联的字符 我试过了,但这似乎表示字符串的结束(后面没有打印任何内容,因此命名为“null terminator”)。似乎有一个(128)字符,但我不确定它的具体用途,我必须手动将该范围的字符添加到我的。添加完整(0-255)字符范围并不是世界末日,只是一些额外的工作 这个角色可以工作,但当有这么多专业角色时,这似乎不是一个最佳实践。可能是一个不占用任何空间的角色 我用VHDL来做这件事,所以可用的字符在。您还可以查看中的字符类型(VHDL)关于这一点的两个想法:String 最适合填充字符串的字符,string,character,special-characters,padding,vhdl,String,Character,Special Characters,Padding,Vhdl,填充字符串时最合适的字符是什么(最好是0到127的范围)?我希望/更喜欢它是非打印字符,并且没有与之关联的字符 我试过了,但这似乎表示字符串的结束(后面没有打印任何内容,因此命名为“null terminator”)。似乎有一个(128)字符,但我不确定它的具体用途,我必须手动将该范围的字符添加到我的。添加完整(0-255)字符范围并不是世界末日,只是一些额外的工作 这个角色可以工作,但当有这么多专业角色时,这似乎不是一个最佳实践。可能是一个不占用任何空间的角色 我用VHDL来做这件事,所以可用
我倾向于选择2。你一眼就能看到你的键盘字符,你就可以输入它们了。如果源或数据在系统之间移动,则不需要特殊字体或编辑器。如果使用固定长度类型
字符串(1到LEN)
,我建议使用以下任一字符填充字符串:
- NUL字符:
- 优点:字符串函数可以对“实际”内容(即第一个NUL字符之前的任何内容)进行操作
- 缺点:ModelSim不能很好地显示字符串,因为它还显示所有NUL字符
- “(空格):
- 优点:很好的ModelSim演示
- 缺点:字符串操作必须检查最后的所有空格
string(1到LEN)
)的替代方法是使用文件包中声明的类型行
“textio”,因为类型行是访问字符串代码>。然后,行是一个指向字符串的“指针”,在VHDL中称为access
type,并且引用的字符串只能以所需的长度创建,因此可以避免填充。问题:
- 优点:
- 字符串长度可以动态确定,所以可变长度的文本可以适应,甚至是长测试
- 缺点:
- 模拟器,例如ModelSim,不能显示
access
类型的内容,如“line”
- 由于VHDL语言在使用
access
类型方面的限制,为字符串/行操作生成函数/过程可能更为复杂
- 不支持“访问”类型的合成
如果使用固定长度类型字符串(1到LEN)
,我建议使用以下任一字符填充字符串:
- NUL字符:
- 优点:字符串函数可以对“实际”内容(即第一个NUL字符之前的任何内容)进行操作
- 缺点:ModelSim不能很好地显示字符串,因为它还显示所有NUL字符
- “(空格):
- 优点:很好的ModelSim演示
- 缺点:字符串操作必须检查最后的所有空格
因此,基于此,用于固定长度字符串的填充字符取决于字符串的使用方式
使用固定长度VHDL字符串类型(string(1到LEN)
)的替代方法是使用文件包中声明的类型行
“textio”,因为类型行是访问字符串代码>。然后,行是一个指向字符串的“指针”,在VHDL中称为access
type,并且引用的字符串只能以所需的长度创建,因此可以避免填充。问题:
- 优点:
- 字符串长度可以动态确定,所以可变长度的文本可以适应,甚至是长测试
- 缺点:
- 模拟器,例如ModelSim,不能显示
access
类型的内容,如“line”
- 由于VHDL语言在使用
access
类型方面的限制,为字符串/行操作生成函数/过程可能更为复杂
- 不支持“访问”类型的合成
Isim中的NUL字符在它之后停止打印任何内容,因此,如果我将诸如“msg”&NUL&“more”
和报告之类的消息连接在一起,我只会看到“msg”。空格字符可以工作,只是它没有特殊性,是一个打印字符(在所有情况下都会占用空格)。我倾向于添加