tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: style(5) proposal: forbid extern in .c
> Date: Thu, 16 Mar 2023 01:58:48 +0900
> From: Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost>
>
> > Proposal: Forbid extern declarations in .c files.
> :
> > Pretty simple. Any objections?
>
> No objection, but I wonder how we can resolve this case:
> https://nxr.netbsd.org/xref/src/sys/arch/hp300/stand/common/if_le.c?r=1.14#101
>
> ---
> extern struct netif_stats le_stats[];
>
> static struct netif_dif le_ifs[] = {
> /* dif_unit dif_nsel dif_stats dif_private */
> { 0, NLE0CONF, &le_stats[0], le0conf, },
> };
> #define NLE_IFS (sizeof(le_ifs) / sizeof(le_ifs[0]))
>
> struct netif_stats le_stats[NLE_IFS];
Two options:
1. If le_stats is used outside this file, move the extern declaration
to a common .h file used by if_le.c and all users of le_stats.
2. If le_stats is used only inside this file, replace `extern' by
`static' and add `static' to the definition. No need for extern
here. The forward declaration inside the .c file would still be
allowed under this change.
Home |
Main Index |
Thread Index |
Old Index