From: Daniel Borkmann > Sent: 12 May 2022 22:00 > > On 5/12/22 7:08 PM, liqiong wrote: > > 在 2022年05月12日 23:16, Yonghong Song 写道: > >> > >> On 5/12/22 7:28 AM, liqiong wrote: > >>> The string form of "char []" declares a single variable. It is better > >>> than "char *" which creates two variables. > >> > >> Could you explain in details about why it is better in generated codes? > >> It is not clear to me why your patch is better than the original code. > > > > The string form of "char *" creates two variables in the final assembly output, > > a static string, and a char pointer to the static string. Use "objdump -S -D *.o", > > can find out the static string occurring at "Contents of section .rodata". > > There are ~360 instances of this type in the tree from a quick grep, do you > plan to convert all them ? There are also all the places with const char *names[] = ...; where the actual names are all similar length so replacing with const char names[][n] saves space. Although that transformation has a bigger effect on shared libs. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)