"未定义符号:_main" 警告意味着什么?

时间:2021-08-12 04:02:02

标签: c

下面是我得到的错误信息:

} ^ 1 warning generated. Undefined symbols for architecture x86_64:   "_main", referenced from:
    implicit entry/start for main executable ld: symbol(s) not found for architecture x86_64 clang:
error: linker command failed with exit code 1 (use -v to see invocation)

下面是代码本身:

#include <stdio.h>
#include <stdlib.h>
int isOddEven (int i) {
      for (i=0; i < 100; i++){
        if(i % 2 == 0){
          printf("%d is an even number\n", i);
          return 1;
        }
        else{
          printf("%d is an odd number\n" , i);
          return 0;
        }
      }
}

2 个答案:

答案 0 :(得分:1)

你没有包含主方法。 你没有在顶部声明 main 方法。 在 C 语言中,必须像变量一样首先声明函数。 因此,您首先需要在顶部声明 isOddEven() 函数。

您的代码应该类似于以下内容:

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

void isOddEven();
int main()
{
  isOddEven();
  return 1;
}
void isOddEven()
{
  for (int i = 0; i < 100; i++)
  {
    if(i % 2 == 0)
    {
      printf("%d 是一个偶数 \n", i);
    }
    else
    {
      printf("%d 是一个奇数 \n" , i);
    }
  }
}

答案 1 :(得分:0)

你可以尝试使用以下代码:

#include <stdio.h>

int isOddEven (int i) {
    if(i % 2 == 0){
        return 1;
    }
    else{
        return 0;
    }
}
int main()
{
    int value = isOddEven(3);
    if(value == 1){
        printf("Value is even");
    }
    else{
        printf("Value is odd");
    }
    return 0;
}

isOddEven 返回一个 int 值,你可以在主函数中检查该值是奇数还是偶数。