Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #7662

Re: static struct and char arrays

From Kai-Uwe Bux <jkherciueh@gmx.net>
Newsgroups comp.lang.c++
Subject Re: static struct and char arrays
Followup-To comp.lang.c++
Date 2011-07-09 00:53 +0200
Organization University of Bielefeld
Message-ID <iv81ot$pgo$1@hoshi.visyn.net> (permalink)
References <iv7dis$g2q$1@gregory.bnet.hr>

Followups directed to: comp.lang.c++

Show all headers | View raw


A wrote:

> Hi,
> 
> I want to use the advantage of having single allocation of a certain
> struct or array but keep it "local".
> For example - not to pollute my namespace I like to use a lot of "local"
> functions like this:
> 
> void Function1()
> {
> struct TLocalFunction1
>     {
>     void operator()(int i)
>         {
>         char abc[] = {1,2,3,4,5};
>         }
>     } LocalFunction1
> 
> // call "local" function
> LocalFunction(1);
> LocalFunction(2);
> // etc...
> }
> 
> Now the problem is that I think this might be slowing down Function1
> because TLocalFunction1 and char abc are constantly initializing from
> scratch.
> 
> So, might I speed up if I prefix "struct TLocalFunction1" and "char abc"
> with the keyword "static" would that speed up the Function1 in terms of no
> more multiple allocations of TLocalFunction1 and char abc. Or is that
> compiler-dependent?

Some cases:

a) If the array does not need initialization, the compiler can very likely 
see that and optimize the initialization away.

b) If the array is non-const, needs initialization, and the contents changes 
during the evaluation of LocalFunction, it has to be reinitialized anyway. 
Otherwise the second call to LocalFunction() would have the garbage contents 
from the previous run.

c) If the array is const, declare it as such and let the compiler take care 
of the possible optimizations.


Best,

Kai-Uwe Bux

Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

static struct and char arrays "A" <a@a.a> - 2011-07-08 19:07 +0200
  Re: static struct and char arrays Ian Collins <ian-news@hotmail.com> - 2011-07-09 08:05 +1200
  Re: static struct and char arrays Kai-Uwe Bux <jkherciueh@gmx.net> - 2011-07-09 00:53 +0200
    Re: static struct and char arrays "A" <a@a.a> - 2011-07-11 17:02 +0200

csiph-web