簡體   English   中英

C中靜態庫中的函數聲明

[英]Function declaration in static library in C

嘗試使用靜態庫編譯程序時遇到問題。 我用gcc -c ft_putstr.c創建.c文件的目標文件。 然后我執行ar -rcs libft.a ft_putstr.o ,然后將gcc main.c -L. -lft制成gcc main.c -L. -lft gcc main.c -L. -lft ,我已經

警告:函數'ft_putstr'的隱式聲明在C99中無效。

二進制文件已創建,但即使這樣工作,我也不需要此警告。 如果我在GCC上有標志-std="c89" ,但我使用的是C99,則它可以工作。

這是我的主要:

int main(void)
{
     ft_putstr("Bonjour");
     return (0);
}

這是我的ft_putstr.c:

#include <unistd.h>

    void    ft_putstr(char *str) 
    {
         (*str) ? write(1, str, 1), ft_putstr(str + 1) : 0; 
    }

您應該包括一個頭文件,其聲明如下

void    ft_putstr(char *str);

或者您可以在main.c插入此行

extern void    ft_putstr(char *str);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM