2013-02-14 76 views
1

我正在使用代码块来学习C编程。无法对代码块进行评论

当我使用/* */程序工作,但当我使用//程序返回此错误。

expected identifier or ‘(’ before ‘/’ token| 

这里的main.c中

#include <stdio.h> 
#include <stdlib.h> 

//Ex1 

int i; 
float p; 
char *n; 

int main(void) 
{ 
    i = 22; 
    p = 70.0; 
    n = "Samuel"; 

    printf("%s %d %.2f", n, i, p); 

    return 0; 
} 
+1

我们可以看到代码块吗?你怎么评论它? – 2013-02-14 11:55:27

+1

你能发表较大的代码吗? – 2013-02-14 11:55:50

+3

//是C++,而不是c。也许你正在编译一个.c文件,而你的编译器是严格的? – 2013-02-14 11:56:23

回答

4

从维基:

C++风格的行注释开始//并延伸到行的末尾。这种评论风格源于BCPL,并在C99中成为有效的C语法;它不是原始的K个& R C也不在ANSI C可供选择:

4

四C语言的主要版本有:

  • ISO 9899:2011。目前的标准称为C11。允许//。
  • ISO 9899:1999。一个过时的标准,称为C99。允许//。
  • ISO 9899:1990。一个过时的标准,称为C90,或者有时是C89。不允许 //。
  • 预标准化。被称为“K & R C”。不允许 //。

确保使用支持相关标准的现代编译器。今天,您应该要求C编译器至少符合C99。

+0

C90有时被困惑的人称为“ANSI-C”,因为它在1989年国际标准化之前一年的美国标准化。但所有的C标准,包括C90,都是ISO/IEC C. ISO是国际标准学会,IEC是国际电子技术委员会。这些取代了国家标准研究所。在美国的国家出版物中,仅在那里,它们可以被称为“ANSI/ISO/IEC 9899:2011”等,但这没有多大意义,因为在美国不需要从英语翻译成本地语言。在美国以外,ANSI是完全不相关的。 – Lundin 2013-02-14 13:33:01

5

如果使用gcc编译器,则添加-std=c99编译器参数。 它将启用C99功能,如//评论。

如果您有-ansi选项,请将其删除。

+0

如果gcc,'//'注释在默认的gnu89模式下可用,那么只需要不需要显式询问C89/C90。不过,明确要求C99或更高版本是很好的。 – 2013-02-14 13:55:56