C – 错误C2144语法错误:’int’前面应加’;’

前端之家收集整理的这篇文章主要介绍了C – 错误C2144语法错误:’int’前面应加’;’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试编译这个C代码
#include <stdlib.h>
#include <stdio.h>   
#include <string.h>
#include "general_configuration.h"
#include "helper_functions.h"

#define LINE_LEN 80

// file_with_as_ext returns 1 if the input has .as extension
int file_with_as_ext(char* input)
{
  char* dot_value = strchr(input,'.');
  if (dot_value == NULL)
    return 0;
  else
  {
    if (strcmp(dot_value,".as") == 0)
      return 1;
  }
}

但是我收到错误“C2144:语法错误:’int’应该以’;’开头”
我无法理解为什么,#define不需要’;’在末尾.

任何想法?

解决方法

首先,您发布的代码以杂散的反引号开头.如果那真的在你的代码中,你应该删除它.

其次,如果您使用该行结束了您的功能,编译器会更快乐并发出更少的警告

return 0; // unreachable

这是很好的C风格,值得推荐. (在你的情况下,这条线实际上是可以到达的,在这种情况下,这条线不仅是好的风格,而且是正确操作所必需的.检查一下.)

否则,你的代码看起来可以正常,除了一些小的反对意见,可以提出关于#define的过时的,C风格的使用以及关于一个或两个其他小风格点.关于#define,它不是C源代码,而是预处理器指令.它实际上由与编译器不同的程序处理,并在编译器看到它之前被适当的C代码删除并替换.预处理器对分号不感兴趣.这就是#define行不以分号结尾的原因.开始#的其他行也不以分号结尾.

正如@JoachimIsaksson所指出的,在文件general_configuration.h或文件helper_function.h的末尾可能缺少所需的分号.您应该检查每个文件中的最后一行.

原文链接:https://www.f2er.com/c/116730.html

猜你在找的C&C++相关文章