Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c++ > #7662
| 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++
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
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