-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathFindAlignment.c
37 lines (30 loc) · 1022 Bytes
/
FindAlignment.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
FindAlignment.c
Simple tool to build the alignment enum for JAValueToString.
*/
#import <stdio.h>
#import <stddef.h>
#import <objc/runtime.h>
#define FIND_ALIGNMENT(NAME, TYPE) printf("\tkAlign%s\t= %zu,\n", #NAME, offsetof(struct{char oddifier; TYPE target;}, target) /*, __alignof__(TYPE)*/)
int main (int argc, const char * argv[])
{
FIND_ALIGNMENT(Pointer, void *);
// FIND_ALIGNMENT(CharPointer, char *);
FIND_ALIGNMENT(Bool, _Bool);
FIND_ALIGNMENT(Char, char);
FIND_ALIGNMENT(UnsignedChar, unsigned char);
FIND_ALIGNMENT(Short, short);
FIND_ALIGNMENT(UnsignedShort, unsigned short);
FIND_ALIGNMENT(Int, int);
FIND_ALIGNMENT(UnsignedInt, unsigned int);
FIND_ALIGNMENT(Long, long);
FIND_ALIGNMENT(UnsignedLong, unsigned long);
FIND_ALIGNMENT(LongLong, long long);
FIND_ALIGNMENT(UnsignedLongLong, unsigned long long);
FIND_ALIGNMENT(Float, float);
FIND_ALIGNMENT(Double, double);
// FIND_ALIGNMENT(Object, id);
// FIND_ALIGNMENT(Class, Class);
FIND_ALIGNMENT(Selector, SEL);
return 0;
}