我无法为自己的一生弄清楚为什么它认为这不会起作用:
int neededSize = size + ROW_SIZE;
int offset = neededSize % MIN_BLOCK_SIZE;
int padding = 0;
if(offset != 0){
padding = MIN_BLOCK_SIZE + offset;amount of padding that we need
}
int requiredSize = neededSize + padding;
错误如下:
src/sfmm.c:63:34: error: statement with no effect [-Werror=unused-value]
padding = MIN_BLOCK_SIZE - offset;
包含的.h文件中的MIN_BLOCK_SIZE定义:
#define MIN_BLOCK_SIZE 64;
我的文本编辑器在该特定行的减号上显示错误。
让我知道是否需要查看更多代码。
最佳答案
您用最后一个分号定义了MIN_BLOCK_SIZE
:
#define MIN_BLOCK_SIZE 64;
由于您的#define,表达式为:
padding = 64; + offset;
因此,这是两个单独的语句。
64
分配给变量padding
。 +offset;
,没有任何作用。它只是求值一个被丢弃的值。
错误消息是正确的。
我相信的意思是来定义
#define MIN_BLOCK_SIZE 64 // Without the final semi-colon.
那么表达式将是:
padding = 64 + offset;
关于c - 无效声明-有用值(value),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62203109/