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