rtems/src/scheduler* code convention issue

Peter Dufault dufault at hda.com
Thu May 29 21:34:33 UTC 2014


On May 28, 2014, at 15:19 , Gedare Bloom <gedare at rtems.org> wrote:

>> + It declares new variables in inner scopes which has been avoided
>> in the past. I think this was not supported in older C standards and thus
>> there was no choice but to avoid it. I don't remember when it got added
>> to C. I assume C99 since that is our target language. But we never
>> discussed it.
>> 
> I believe I have seen this creeping into RTEMS recently. The coding
> conventions say to use ANSI C, which is a vague description that could
> mean C99, or C90.

By "declaring variables in inner scopes" are you talking about block scope, that is,
int foo(void)
{
/* And then later on... */

	{
		int new_scope_var;
		...
	}
}
where "new_scope_var" is only in existence in that block?

I think that's been around close to forever and it shouldn't be discouraged.  Historically macros depend on it, and a coding convention that says "declare a variable in as restricted a scope as possible" is a MUCH better convention than avoiding new variables in block scope.

Sorry if I misunderstood.

Peter
-----------------
Peter Dufault
HD Associates, Inc.      Software and System Engineering





More information about the devel mailing list