有没有办法在不引入循环或通过递增影响指针的情况下手动将 *char 数组的元素打印为十六进制值?
它不应该添加引入额外的变量,改变当前变量并且应该是一个单行代码printf/printk/...
最佳答案
没有循环,指针和大小实际上是常量参数:
void fun( char * ptr, uint idx, uint size )
{
if( idx < size )
{
printf( "% 2x\n", ( unsigned char ) ( ptr[idx] ) );
fun( ptr, 1 + idx, size );
}
}
调用示例:
char ray[] = { 0xca, 0xff, 0xee, 0x00 };
fun( ray, 0, sizeof( ray ) / sizeof( ray[0] ) );
关于c - 手动打印 char * 的单个值而不循环或递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29818800/