lu和int之间的算术似乎不正确

时间:2019-06-14 00:06:40

标签: c

对于我正在从事的个人项目,当我从一个int中减去一个长的unsigned时,似乎出现了错误。

详细信息:

我#定义一个将在多个文件中使用的值,并将其设置为256。这是我制作的结构的最大大小。

然后我#define另一个变量,该变量是结构中除列表以外的所有项目的大小。这个数字是51。

在我创建的结构中,我使用那些#defined变量使用“块”中的其余空间来创建列表。列表大小应为256-51。

当我打印整个结构的大小时,我得到264。当我在两个#defined变量之间打印算术时,我得到正确的答案205(256-51)。

该结构的大小应为256,但我不知道为什么它不是该大小。

任何帮助将不胜感激!

可复制代码

test.c:

requests = []
for name in ig_names[1:]:
    if len(name) != 0:
        print(name)
        ig_url = f'https://www.instagram.com/{name}'
        print(ig_url)
        data = instagram_metrics(ig_url)
        requests.append(data[2])
    else:
        requests.append('')
        continue

# Select a range
cell_list = worksheet.range('F2:F' + str(len(requests) + 1))

for i, cell in enumerate(cell_list):
    cell.value = requests[i]

# Update in batch
worksheet.update_cells(cell_list)

test.h

sleep(randint(3,6))

输出:

#include "test.h"

int main(){
   //Prints 205, which seems correct
   printf("OUTPUT: %lu\n", (BLOCKSIZE-META));

   //Prints 264, which is wrong 
   printf("OUTPUT: %d\n", (int) sizeof(Inode));
   return 0;
}

0 个答案:

没有答案