Extern在本地声明和定义的函数

时间:2017-08-30 03:56:14

标签: c

我有两个 c 文件:

的main.c

int main()
{
    foo();
    return 0;
}

foo.c的

void foo(void);

void foo(void)
{ 
    printf("Hi");
}

由于默认情况下所有功能都是extern,为什么 main.c 找不到foo()? 功能原型 - > void foo(void);未在 foo.h 中声明,它保留在 foo.c

我收到错误:

  

未定义对foo的引用

编译此代码时。

2 个答案:

答案 0 :(得分:3)

C源文件是独立编译的。例如。当编译器处理main.c时,它对foo.c或任何其他文件中的内容一无所知,除非您实际引用其他文件。

答案 1 :(得分:0)

您的代码没有重大问题(有些人可能会认为下面给出的警告是" major")。您可能只是没有正确构建。但你可以建立:

df %>%
  group_by(var,value) %>%
  mutate(output = case_when(row_number() > 2 ~ "rep", TRUE ~ "non_rep") )