下面的代码有问题它给我的错误告诉我什么都不知道。
我有一个文件存储器

#ifndef BLOCK_SIZE
#define BLOCK_SIZE 8
#endif

我还有configuration.ac文件,片段如下:
AC_ARG_WITH([block-size],
    [AS_HELP_STRING([--with-block-size],["Define blocksize to initialize with. Default value: 8]")],
        [bsize="$withval"],
        [])

if test ! -z "${bsize}"; then
        if test  "${bsize}" > 0 ; then
                AC_DEFINE_UNQUOTED([BLOCK_SIZE], [$b_size], [Defining block size in bytes])
        else
                AC_DEFINE_UNQUOTED([BLOCK_SIZE], [8], [Default block size : 8B])
        fi
fi

后来我使用命令./configure --with-block-size=16 --with-allocator=STR_MIN完成makefile的制作但现在我使用make命令,我得到了大量错误:
memory.c: In function 'initialize':
memory.c:15:59: error: expected expression before ')' token
memory.c: In function 'allocate':
memory.c:26:41: error: expected expression before ')' token
memory.c:53:56: error: expected expression before ';' token
memory.c: In function 'defragment':
memory.c:140:73: error: expected expression before ')' token
memory.c: In function 'diagnoze':
memory.c:174:183: error: expected expression before ',' token

所有出现错误的行如下所示:
mem -> unused_list -> address = malloc(count * BLOCK_SIZE);
new -> address = space -> address + size * BLOCK_SIZE;

编译器似乎根本看不到块大小。现在有一个问题是为什么。
我知道我可能已经吃了后两个在这个代码但我找不到,也不知道还有什么能引起这个问题我之前使用的automake的所有其他命令(包括./con..)都没有抛出任何错误。

最佳答案

像我想的那样愚蠢的错误我只是换了一条线:

AC_DEFINE_UNQUOTED([BLOCK_SIZE], [$bsize], [Defining block size in bytes])

正如有人所说,没有遗漏的引语,只是简单到多。
不管怎样,谢谢你的帮助。

关于c - 编译器看不到的常量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15626934/

10-12 16:09