相关疑难解决方法(0)

C++ 17中有哪些新功能?

C++ 17现在功能齐全,因此不太可能经历大的变化.为C++ 17提出了数百个提案.

在C++ 17中,哪些特性被添加到C++中?

当使用支持"C++ 1z"的C++编译器时,当编译器更新到C++ 17时,哪些功能可用?

c++ standards c++-faq c++17

986
推荐指数
1
解决办法
21万
查看次数

C,C99,ANSI C和GNU C有什么区别?

我已经开始编写关于codechef的编程实践,并且对C和C99之间区别感到困惑.C在这里意味着什么?是C89吗?检查此提交底部的语言.它包含C和C99.

我在互联网上发现了一个名为GNU C的东西.对于linux/unix系统有不同的C吗?这些是否符合ANSI的C标准?我也在一些地方读过"C99严格".这是什么?

是否还有其他不同的C标准?有没有叫做C 4.3.2的东西,还是当前使用的gcc版本?

编辑:

这个,这个,这有帮助.我会搜索更多并编辑未回答的内容.

我不是一个编程新手.我知道C语言是什么.我知道ANSI有不同的C标准,如C89,C99和C11.

c gcc c99 c89 ansi-c

115
推荐指数
4
解决办法
7万
查看次数

C89中的有效程序,但不是C99中的程序

是否在C99中引入或删除了特征/语义,这些特性/语义也可以用C89编写一个定义良好的程序

  • 无效(即根据C99标准不再编译)
  • 编译,但具有不同的语义.

到目前为止我的调查结果,涉及明显无效的程序:

  • 隐式int(C89§3.5.2)
  • 隐函数声明(C89§3.3.2.2)
  • 不从期望返回值的函数返回(C89§3.6.6.4)
  • 使用新的关键字作为标识符(例如restrict,inline等)
  • 黑客涉及//,现在被视为评论.但是,在生产代码中几乎从未遇到过.

微妙的变化,使相同的代码具有不同的语义:

  • 已经很好地定义了整数除法,例如-3/2现在必须截断为零(C99§6.5.5/ 6),而不是实现定义(C89§3.3.5/ 6)
  • strtod通过解析0x或获得了在C99中解析十六进制数的能力0X

我错过了什么?

c c99 c89 language-lawyer

17
推荐指数
1
解决办法
619
查看次数

在mac上安装GNU GCC

我最近对Xcode 5中包含的新的clang编译器感到沮丧.我想知道在OS X上安装GNU GCC的最佳方法是什么.

需要考虑的事项:

  • 我不想使用MacPorts,fink,自制软件或任何其他第三方软件包管理器.
  • 如果可能的话,我想使用从源代码编译的最新GCC.
  • 我需要现有的GCC(硬链接到clang)作为默认值,但是在我需要时可以轻松地使用GNU GCC.
  • 如果可能的话,我想避免修改代码.

编辑:成功!使用GCC 4.9.2(使用GMP 5.1.3,MPFR 3.1.2,MPC 1.0.2,ISL 0.12.2和CLooG 0.18.1),我成功构建了GCC.从这里获取的提示:

  • 确保使用ISL和CLooG.是的,它们是可选的,但它们是一个更优化的编译器,我在没有它们的情况下构建很困难.确保使用ISL 0.12,而不是最新版本(0.14).
  • 如果可能,请使用独立的开发人员工具,而不是 XCode.(XCode有一些错误的标题,虽然我没有注意到构建GCC的任何问题,但我遇到了其他软件(例如GPG)的问题).
  • 我建议将所有源代码放在gcc目录中,而不是单独构建和安装(这种方式更快)
  • 确保你调用configure,CC=clang CXX=clang++所以GCC知道它不是由GCC编译的.
  • 绝对,绝对,绝对,调用make-j8,或以其他方式构建需要大约4个小时!(-j8我的2012年中期MBP使用8GB RAM需要1 1/3小时.)(make -j8意味着make可以同时构建8个线程(4个核心+ HT),而在2核心机器上运行make -j4.)

希望这可以帮助!

macos gcc clang

9
推荐指数
2
解决办法
2万
查看次数

错误:在'*'标记之前预期')'

我有这个包含文件(memory .h)

#ifndef MEMORY_H
#define MEMORY_H

#ifdef  __cplusplus
extern "C" {
#endif

    typedef struct mmemory {
        int* cells;
        int* current_cell;
        int cells_number;
    } memory;

    void memory_init(memory* mymemory, int size);
    void step_left(memory* mymemory, int steps);
    void step_right(memory* mymemory, int steps);
    void cell_inc(memory* mymemory, int quantity);
    void print_cell(memory* mymemory);
    void get_char(memory* mymemory);


#ifdef  __cplusplus
}
#endif

#endif  /* MEMORY_H */
Run Code Online (Sandbox Code Playgroud)

而这个实现文件(memory.c)

#include <stdlib.h>
#include "memory.h"

void
memory_init (memory* mymemory, int size)
{
    mymemory->cells = (int*) malloc (sizeof (int) …
Run Code Online (Sandbox Code Playgroud)

c

7
推荐指数
1
解决办法
8万
查看次数

标签 统计

c ×3

c89 ×2

c99 ×2

gcc ×2

ansi-c ×1

c++ ×1

c++-faq ×1

c++17 ×1

clang ×1

language-lawyer ×1

macos ×1

standards ×1