gpt4 book ai didi

创建函数: Every 8 increments = one paragraph

转载 作者:行者123 更新时间:2023-11-30 14:56:29 25 4
gpt4 key购买 nike

我想在c中创建一个函数,它每8个增量(确切地说,当整数保存值8时)创建一个段落/新行(并且还打印一个偏移量)。

在这种情况下,我有一个数组

for (int i = 0; i < sizeof(myarray); i++){
printf(" %02hhX", myarray[i]);
}

现在我想像这样实现我的功能

int row = 0;
for (int i = 0; i < sizeof(myarray); i++){
printf(" %02hhX", myarray[i]);
check_newline(row);
}

函数“check_newline”具有以下结构:

void check_newline(int row){
row++;
if(row==8){
offset = offset + 8;
row= 0;
printf("\n%06X", offset);
}
}

每次,整数“row”达到值 8 时,都会打印一个新的偏移量,并且“row”的值将重置为 0。

现在,我不知道如何实现返回;使用这段代码,我的输出如下所示

000008 E0 60 66 64 38 7D E0 60 66 64 38 7D 80000008 80 00 FF FF FF FF FF FF 000010 E0 60 66 64 38 7D E0 60 66 64 38 7D 80000010 80 00 FF FF FF FF FF FF

(完全错误)

当我“将函数放入代码中”(所以基本上不使用函数)时,一切都很好,因为缺少 return 语句。

for (int i = 0; i < sizeof(myarray); i++){
printf(" %02hhX", myarray[i]);
row++;
if(row==8){
offset = offset + 8;
row= 0;
printf("\n%06X", offset);
}

000000 80 00 FF FF FF FF FF FF
000008 E0 60 66 64 38 7D E0 60

我必须在我的代码中经常使用这种计算,这样函数就会更加流畅。

最佳答案

你把事情搞得太复杂了。您不需要额外的变量,因为您可以使用 i%(模运算符)来计算何时处于一个开头或结尾像这样排。

for (int i = 0; i < sizeof(myarray); i++) {
if (i % 8==0) {
printf("%06X",i);
}
printf(" %02hhX", myarray[i]);
if (i % 8==7) {
printf("\n");
}
}

关于创建函数: Every 8 increments = one paragraph,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44649784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com