c11

    1热度

    2回答

    我试图定义一个通用的函数使用C中_Generic采取输入,这是我写的 #include <stdio.h> #define readlong(x) scanf("%lld",&x); #define read(x) scanf("%lld",&x); #define scan(x) _Generic((x), \ long long: readlong, \ default: rea

    4热度

    2回答

    要在C和C一些代码编译++我在几个地方使用: #ifdef __cplusplus #define typeof(x) decltype(x) // works ok in most cases, except C++ reference types #endif char* a = (typeof(a)) malloc(4); 在C,这个编译为char* a = (char

    0热度

    1回答

    我想编译这个源代码: #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <string.h> int main(int argc, const char *argv[]) { While: printf("MacBook-Pro-...:~ ...$ "); char comma

    0热度

    1回答

    我只想让我的代码尽可能简单并且线程安全。 随着C11原子学 关于部分ISO/IEC 9899/201X草案 X和Y的 “7.17.4栅栏”,在某些原子物体M两种操作,使得A是 在X之前测序,X修改M,Y在B之前测序,且Y读取由X写入的值或由 假设版本序列X中的任何副作用写入的值如果它是版本 操作。 此代码是否线程安全(将“w_i”作为“对象M”)? “w_i”和“r_i”是否都需要声明为_Atom

    5热度

    2回答

    C11和C++ 11根据执行线程定义原子。而在托管环境中,清楚线程是什么,这在独立语言实现中是一个模糊的术语。 如何在独立实现中正式理解C11和C++ 11中指定的原子,其中所有线程都必须在程序内部实现?例如:ISR是一个独立的执行线程吗? 为什么标准委员会在线程方面定义了原子,而不是简单地在代码排序领域? 除gcc外,是否有嵌入式编译器支持C11/C++ 11原子?

    3热度

    1回答

    我发现自己处于奇怪的状况,试图为某些C代码添加一些语法漂亮。我有三个数字,只是结构。 typedef struct {int x, y, z} coord; 现在我有一些函数需要2个这样的结构作为参数。最简单的一个计算定义的三维空间内的坐标数两个结构: static inline int boxes_inside(const coord min, const coord max) {

    1热度

    1回答

    是否有库提供线程局部变量注册构造函数的机制? 我想让我的库提供一个线程局部结构,它应该使用动态获取的数据在线程创建时初始化。 如果结构只是全局的,但不是线程本地的,我会用gcc的__attribute__((__constructor__))标记一个函数对它进行初始化,但是这些构造函数在创建新线程时不会重新触发。

    0热度

    1回答

    你好我上使用以下命令编译一个C11程序此警告与gcc(5.4.0版本): $ gcc -g -Wall -std=c11 main.c -o minishell main.c: In function ‘process_new’: main.c:184:10: error: assignment of read-only variable ‘s’ s = slice_next(s,

    1热度

    1回答

    我得到这个奇怪的错误... jos_log.c:16:13: error: field '_errno' declared as a function ERRNO errno; ^ ...当我编译此代码: typedef enum ERRNO_ { /* ... */ } ERRNO; typedef struct LOG_ENTRY_ {

    1热度

    1回答

    我已经安装了自制的macvim; OS X版本10.11.6;的MacVim版本: macvim: stable 8.0-119 (bottled), HEAD 但是当编辑 “我file.c” 它不默认颜色printf,scanf。 我已经搜索了如何通过创建~/.vim/after/c.vim来添加它们。 (我想通过另一种方式直接编辑默认的c.vim文件,但我不知道它们在哪里)。 在我~/.v