2

私の質問では、2 つの関数があり、どちらもライブラリ フォルダー内の .h ファイルにプロトタイプがあり、.c 補助ファイル (以下に示す) に実装があり、プログラムで両方を使用するとします。 .

calsis.c

 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
 #include <fcntl.h>
 #include "include/calsis.h" /* Extern header */ 

char folder_name[30] = "Information";

void no_args() /* Function 1 */
{
  printf("Hello, world!\n");

   if ( mkdir(folder_name, S_IRWXU) == -1 )
    perror("Can't create a new folder");
}

void with_args(char *foo) /* Function 2 */
{
   printf("Hello, world!\n");
   printf("Name: %s\n", foo);

   if ( mkdir(folder_name, S_IRWXU) == -1 )
    perror("Can't create a new folder");
}

後で行うことのために、両方の関数で mkdir を使用してフォルダーを作成する必要がありますが、実装された関数を使用して .c ファイルをコンパイルすることによるオブジェクト ファイルcalsis.oの生成では、GCC を使用してコンパイルすると、 mkdir 関数が暗黙的に宣言されているという警告。

この警告を削除できるアイデアはありますか?

4

1 に答える 1

9

のヘッダーが含まれていませんmkdir:

man(2) mkdir から:

SYNOPSIS
       #include <sys/stat.h>
       #include <sys/types.h>

       int mkdir(const char *pathname, mode_t mode);
于 2013-10-20T16:23:20.963 に答える