Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Naming convention in Objective C /C , start with "_"?

Something I see ppl define the variable like this:

b2World *_world;
b2Body *_body;
CCSprite *_ball;

instead of

b2World *world;
b2Body *body;
CCSprite *ball;

I familiar with the second one, but not the first one. So, I checked the Wikipedia about naming convention:

Names beginning with double underscore or an underscore and a capital letter are reserved for implementation (compiler, standard library) and should not be used (e.g. __reserved or _Reserved).

So, is that any special meaning which is start with "_"?

The code I saw which using "_" to begin is here:

http://www.raywenderlich.com/457/intro-to-box2d-with-cocos2d-tutorial-bouncing-balls

The wiki page.

like image 963
Tattat Avatar asked Apr 18 '10 00:04

Tattat


People also ask

What is the naming convention in C?

The first character of the name should be a letter and all characters (except the period) should be lower-case letters and numbers. The base name should be eight or fewer characters and the suffix should be three or fewer characters (four, if you include the period).

Can variables start with _ in C++?

In C/C++, a variable name can have alphabets, numbers and underscore( _ ) character. There are some keywords in C/C++ language, apart from them everything is treated as identifier. Identifiers are the name of variable, constants, functions etc.

Does C use CamelCase or underscore?

Classic C doesn't use camel-case; I've written code in camel-case in C, and it looks weird (so I don't do it like that any more). That said, it isn't wrong - and consistency is more important than which convention is used.

Why do some variables start with underscore?

The underscore in variable names is completely optional. Many programmers use it to differentiate private variables - so instance variables will typically have an underscore prepended to the name. This prevents confusion with local variables. Show activity on this post.


1 Answers

There's a long-standing convention among some Objective-C developers to prefix instance variables with an underscore. It can be helpful in several ways: one, it makes it easier to spot instance variables in a .m file; two, it relieves developers of having to come up with creative names for method parameters to avoid colliding with instance variable names; and three, as others have noted, it indicates that the instance variables are private, and therefore shouldn't be accessed willy nilly throughout the code.

In fact, I'd argue for avoiding accessing instance variables directly in methods other than accessors (getters and setters), -dealloc, and -init.... Not that you should never, ever use them anywhere else, but you should at least give it some thought before using an instance variable directly in other methods.

like image 56
jlehr Avatar answered Oct 20 '22 08:10

jlehr