mirror of
https://github.com/ziglang/zig.git
synced 2024-11-25 13:50:15 +00:00
2291560424
This introduces the new test step `test-c-import`, and removes the ability of the behavior tests to `@cImport` paths relative to `test`. This allows the behavior tests to be run without translate c.
71 lines
1.7 KiB
C
71 lines
1.7 KiB
C
// initializer list expression
|
|
typedef struct Color {
|
|
unsigned char r;
|
|
unsigned char g;
|
|
unsigned char b;
|
|
unsigned char a;
|
|
} Color;
|
|
#define CLITERAL(type) (type)
|
|
#define LIGHTGRAY CLITERAL(Color){ 200, 200, 200, 255 } // Light Gray
|
|
|
|
#define MY_SIZEOF(x) ((int)sizeof(x))
|
|
#define MY_SIZEOF2(x) ((int)sizeof x)
|
|
|
|
struct Foo {
|
|
int a;
|
|
};
|
|
|
|
union U {
|
|
long l;
|
|
double d;
|
|
};
|
|
|
|
#define SIZE_OF_FOO sizeof(struct Foo)
|
|
|
|
#define MAP_FAILED ((void *) -1)
|
|
|
|
#define IGNORE_ME_1(x) ((void)(x))
|
|
#define IGNORE_ME_2(x) ((const void)(x))
|
|
#define IGNORE_ME_3(x) ((volatile void)(x))
|
|
#define IGNORE_ME_4(x) ((const volatile void)(x))
|
|
#define IGNORE_ME_5(x) ((volatile const void)(x))
|
|
|
|
#define IGNORE_ME_6(x) (void)(x)
|
|
#define IGNORE_ME_7(x) (const void)(x)
|
|
#define IGNORE_ME_8(x) (volatile void)(x)
|
|
#define IGNORE_ME_9(x) (const volatile void)(x)
|
|
#define IGNORE_ME_10(x) (volatile const void)(x)
|
|
|
|
#define UNION_CAST(X) (union U)(X)
|
|
#define CAST_OR_CALL_WITH_PARENS(type_or_fn, val) ((type_or_fn)(val))
|
|
|
|
#define NESTED_COMMA_OPERATOR (1, (2, 3))
|
|
#define NESTED_COMMA_OPERATOR_LHS (1, 2), 3
|
|
|
|
#include <stdint.h>
|
|
#if !defined(__UINTPTR_MAX__)
|
|
typedef _Bool uintptr_t;
|
|
#endif
|
|
|
|
#define CAST_TO_BOOL(X) (_Bool)(X)
|
|
#define CAST_TO_UINTPTR(X) (uintptr_t)(X)
|
|
|
|
#define LARGE_INT 18446744073709550592
|
|
|
|
#define EMBEDDED_TAB "hello "
|
|
|
|
#define DIVIDE_CONSTANT(version) (version / 1000)
|
|
#define DIVIDE_ARGS(A, B) (A / B)
|
|
|
|
#define REMAINDER_CONSTANT(version) (version % 10000)
|
|
#define REMAINDER_ARGS(A, B) (A % B)
|
|
|
|
#define LONG(x) x##L
|
|
#define X LONG(10)
|
|
|
|
#define BLANK_MACRO
|
|
#define BLANK_CHILD_MACRO BLANK_MACRO BLANK_MACRO BLANK_MACRO
|
|
#define MACRO_VALUE 0
|
|
typedef long def_type;
|
|
#define BLANK_MACRO_CAST (BLANK_CHILD_MACRO def_type BLANK_CHILD_MACRO)MACRO_VALUE
|