我在Linux上,用C编写代码,并试图处理argv变量的调整号属性,但没有结果:
我们如何使argv参数(每个参数)对齐到一个定义的边界,比如16位,,而不首先通过memcpy或替代方法将其复制到对齐变量?
有可能吗?
发布于 2015-03-19 07:37:00
这是不可能的。对齐属性告诉编译器如何对齐为其生成代码和数据的结构。它还告诉编译器由其他代码生成的外部结构和数据的实际对齐情况。
argv参数直接由C启动代码或操作系统提供。在指针数组的隐式自对准之外,不应对它们的对齐进行任何假设。您不能用编译器属性来更改它,也不建议强制编译器进行其他假设。
发布于 2015-03-19 07:45:59
在某些实现中,argv变量可以直接指向原始命令行,在此命令行中,每个参数被替换为null后,第一个分隔符(空格)。在这样的实施中,很明显的是,结盟是什么,它是什么,而不能被控制!
https://stackoverflow.com/questions/29139186
复制相似问题