Codec ░ c

632Inline Functions in C

The keyword inline, when applied to functions, tells the compiler to optimize calls to the functions. Usually used for short functions and for the sake of clarity.

inline int max(int a, int b) {
	return a + b;
}
 
int main(void) {
	int x = 2;
	int y = 6;
	printf("result: %d", add(x,y));
}
 
// ok, the example is stupid, but i hope it illustrates the idea

Looks exactly the same as calling a function, but actually the function is not called, no function-calling overheads are created. Instead the inline function is expanded in place, where it is called. Obviously this only makes sense with rather short functions.

452Padding with Zeros (or other characters) 420Getting current Time with Microseconds 313Swimming Nearly drowning in C++ 305Converting float to string %4.2f 107Typedef, Struct, Enum

452Padding with Zeros (or other characters)

int x = 11;
 
[NSString stringWithFormat:@"%03i", x];
// @"011"
 
[NSString stringWithFormat:@"%+5i", x];
// @"+++11"
 
[NSString stringWithFormat:@"%+05i", x];
// @"+0011"

And not really like that. 381. I’ll still have to learn a lot of C.

632Inline Functions in C 565Stripping Characters from an NSString 564NSData to NSString and vice versa 484Printing Selectors in NSLog 447Stripping out NSLog() from the Release Build

420Getting current Time with Microseconds

#import <sys/time.h>
 
struct</span> timeval tv;
gettimeofday(&tv, NULL);
int sec = tv.tv_sec;
int usec = tv.tv_usec;

The system’s notion of the current Greenwich time and the current time zone is obtained with the gettimeofday() call, and set with the ettimeofday() call. The time is expressed in seconds and microseconds since midnight (0 hour), January 1, 1970. The resolution of the system clock is hardware dependent, and the time may be updated continuously or in “ticks.” If tp is NULL and tzp is non-NULL, gettimeofday() will opulate the timezone struct in tzp. If tp is non-NULL and tzp is NULL, then only the timeval struct in tp is populated. If both tp and tzp are NULL, nothing is returned.

Check out the man page for more info.

632Inline Functions in C 569Layering one UIImage onto of another UIImage 560#import vs #include in Objective C – A quick reminder 457Singleton Classes and Shared Resources in Objective-C 452Padding with Zeros (or other characters)

313Swimming Nearly drowning in C++

OK, I’ve decided to do it. To leave the elegance of Objective-C and have a closer look at C++. After all, isn’t everyone doing oF these days?

Here a recapitulation of usesful C and some quick notes on C++ peculiarities – sorry – features: (That might be a good place to start.)

Initialisation
int a = 1; // standard c way
int b(1); // same

Defined constants
#define PI 3.1415927 // faster than var

Declared constants
const int c = 100 // immutable

Assignment
= can also be used as rvalue
a = 1 + (b = 2);

same as:
b = 2;
a = 1 + b;

Comma operator
a = (b=3, b+2); // a = 5

When the set of expressions has to be evaluated for a value, only the rightmost expression is considered

Type casting
int i, j;
float f = 1.234;
i = (int) f;
j = int (f);

sizeof()
One parameter, either a type or a variable and returns the size in bytes.

a = sizeof (char);

Will become important with arrays.

632Inline Functions in C 452Padding with Zeros (or other characters) 420Getting current Time with Microseconds 305Converting float to string %4.2f 107Typedef, Struct, Enum

305Converting float to string %4.2f

printf ("floats: %4.2f %+.0e %E \n", 3.1416, 3.1416, 3.1416);

floats: 3.14 +3e+000 3.141600E+000

632Inline Functions in C 564NSData to NSString and vice versa 452Padding with Zeros (or other characters) 420Getting current Time with Microseconds 376Variable length of accuracy of float in NSString

107Typedef, Struct, Enum

struct
a collection of types, composite data type, composition, “user-definded data structure”
struct Test {
char* name;
int nr;
float f;
};

Name of type is “struct Test”, and not “Test” alone.
struct Test myNewTest

Semicolon after closing parethesis is essentional.

Access composed types with dot-syntax:
myNewTest.name = "hjkjnk";
myNewTest.nr = 32;
myNewTest.f = 2.2424
;

typedef
a shorthand, an alias for a type, for ease of readability.

typedef int MyType

“MyType n;” would be equal to “int n;”

enum
“introduces a symbolic name for an integer constant”

enum direction_enum {LEFT, RIGHT};
/* LEFT -> 0, RIGHT -> 1; */
enum direction_enum x = LEFT;

typedef enum

typedef enum {
LEFT;
RIGHT;
} direction;

declatation:
-(void)myFunction:(direction)LEFTorRIGHT;

call:
-(void)myFunction:LEFT;

typedef struct

typedef struct objectInfo_ {
CGPoint origin;
NSString* name;
NSColor* color;
} objectInfo

Shortcut. Instead of writing ‘struct objectInfo_’, write ‘objectInfo’. The keyword ‘objectInfo_’ seems to be optional.

632Inline Functions in C 452Padding with Zeros (or other characters) 420Getting current Time with Microseconds 313Swimming Nearly drowning in C++ 305Converting float to string %4.2f