##安装 Xcode
在 App Store 中搜索 Xcode 并安装

测试环境

这里我写了一个 Demo 用来测试,代码如下:

#include <stdbool.h>
#include <stdint.h>
#include <stdatomic.h>
#include <stdnoreturn.h>
#include <stdlib.h>
#include <assert.h>
#include <complex.h>

#ifndef var
#define var     __auto_type
#endif

/// noreturn测试函数
static int noreturn MyTest(void)
{
    const bool equal = sizeof(long) == sizeof(int);
    printf("Is equal? %s\n", equal ? "Yes" : "No");

    // 原子操作测试
    volatile atomic_int atom;
    atomic_init(&atom, 0);
    const var oldValue = atomic_fetch_add(&atom, 100);
    printf("Previous value = %d, current value = %d\n", oldValue, atomic_load(&atom));

    volatile atomic_flag flag = ATOMIC_FLAG_INIT;
    if(!atomic_flag_test_and_set(&flag))
        puts("Access the resource...");
    else
        puts("Locked!");

    if(!atomic_flag_test_and_set(&flag))
        puts("Access the resource...");
    else
        puts("Locked!");

    atomic_flag_clear(&flag);
    if(!atomic_flag_test_and_set(&flag))
        puts("Access the resource...");
    else
        puts("Locked!");

    exit(0);
}

int main(int argc, const char * argv[])
{
    // 字符编码测试
    const char *utf8Str = u8"你好,世界!";
    printf("The string is: %s\n", utf8Str);

    const var utf16Char = u'¥';
    printf("The UTF-16 code is: %.4X\n", utf16Char);

    const char encoding = _Generic(utf16Char, uint8_t:'c',
                                   uint16_t:'s', uint32_t:'i', default:'o');

    printf("The type of utf16Char is: %c\n", encoding);

    // 复数测试
    complex float comp1 = 5.0f + 3.0fi;
    complex float comp2 = {3.0f, -2.0f};
    comp1 -= comp2;
    printf("comp1 real = %f, imag = %f\n", __real(comp1), __imag(comp1));

    // 静态断言测试
    static_assert(sizeof(long) == 8, "Not 64-bit environment!");

    return MyTest();
}

问题

  • 在 Xcode 无法使用 bits/stdc++.h,需要自行配置。
最后修改:2023 年 02 月 14 日
如果觉得我的文章对你有用,请随意赞赏