首页 > 解决方案 > 为什么''不起作用?“预期的表达式,空字符常量”

问题描述

#include <stdio.h>
#define NUMLINES 6
void main(){
    int i, indent, howmany;
    void display(int,char);
    for(i = 1; i <= NUMLINES; i++){
        display(NUMLINES + 1 - i, '');
        display(2 * i - 1, '*');
        printf("\n");
       }
    }

void display (int howmany, char symbol){
    int i;
    for(i = 1; i <= howmany; i++) printf("%c", symbol);
}

错误提示“预期的表达式,空字符常量”。为什么''不起作用?

标签: c

解决方案


您的意思是' '(space) 而不是''(empty),因为后者不是有效的字符常量。以下是标准在第 6.4.4.4 节中对其的定义:

character-constant: 'c-char-sequence 'L' c-char-sequence 'u' c-char-sequence 'U' c-char-sequence '</p>

c-char-sequence: c-char c-char-sequence c-char

c-char:源字符集的任何成员,除了单引号 '、反斜杠 \ 或换行符转义序列


推荐阅读