小编Mar*_*ark的帖子

如何在C中对齐指针

有没有办法在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不允许模数指针.有没有与架构无关的解决方案?

c pointers alignment

24
推荐指数
1
解决办法
4万
查看次数

在C中打印字符串的一部分

有没有办法只打印部分字符串?

例如,如果我有

char *str = "hello there";
Run Code Online (Sandbox Code Playgroud)

有没有办法只打印"hello",请记住我要打印的子字符串是可变长度,而不是总是5个字符?

我知道我可以使用一个for循环,putchar或者我可以复制数组,然后添加一个空终止符,但我想知道是否有更优雅的方式?

c c-strings

13
推荐指数
2
解决办法
3万
查看次数

标签 统计

c ×2

alignment ×1

c-strings ×1

pointers ×1