有没有办法在C中对齐指针?假设我正在将数据写入数组堆栈(因此指针向下移动)并且我希望我写入的下一个数据是4对齐的,因此数据写入的内存位置是4的倍数,我该怎么做那?
我有
uint8_t ary[1024];
ary = ary+1024;
ary -= /* ... */
Run Code Online (Sandbox Code Playgroud)
现在假设ary在位置点0x05.我希望它指向0x04.现在我可以做到
ary -= (ary % 4);
Run Code Online (Sandbox Code Playgroud)
但是C不允许模数指针.有没有与架构无关的解决方案?
有没有办法只打印部分字符串?
例如,如果我有
char *str = "hello there";
Run Code Online (Sandbox Code Playgroud)
有没有办法只打印"hello",请记住我要打印的子字符串是可变长度,而不是总是5个字符?
我知道我可以使用一个for循环,putchar或者我可以复制数组,然后添加一个空终止符,但我想知道是否有更优雅的方式?