タグ

clangとプログラミングに関するslay-tのブックマーク (3)

  • 最近のC言語と、次期C標準(C23)

    C言語といえば古い言語なイメージですが、その重要性はまだまだ落ちていません(多分)。重要な言語だからこそ、今もひっそりと進化を続けています。この記事では、そんなC言語の最近の動向を紹介します。 まずはC言語の前世紀の標準であるC99、現行の標準であるC11/C17を振り返り、その後に未来の標準であるC23に触れます。 C99 C99では色々追加されました。ここでは一部のみの紹介とします。 _Bool _Complex C++の std::complex とメモリ上での互換性がある(C++11以降)。 可変長配列(VLA) 可変長引数マクロ 浮動小数点数の強化 十六進表記 筆者による関連記事:浮動小数点数の16進表記 fma 筆者による関連記事:FMA (fused multiply-add) の話 #pragma STDC FENV_ACCESS, #pragma STDC CX_LIMI

    最近のC言語と、次期C標準(C23)
  • c: c言語をスクリプト感覚で実行出来る様にするコマンド

    B! 92 0 0 0 PythonRubyなんかはShebangをファイルの先頭に書いておくと、 ファイルの実行権限を持っていれば内容をその言語のものとして読み取って実行してくれます。 これと同じような事をしてくれるコマンドが cです。 c Shebangを使って実行 コマンドとしてファイルを引数として渡して実行 その他出来るコト c cはファイルの中身を見ると結構単純なシェルスクリプトです。 中でccを使ってコンパイルして実行する、を一気にやってくれるわけです。 その際、実際の実行ファイルなんかは 一時ディレクトリ($C_CACHE_PATH or $TMPDIR or /tmp) に作られるのでまるでスクリプトを実行してる様な感じで コマンドが実行されます。 使うには上のレポジトリからcスクリプトを取ってきて適当なPATHの通った ディレクトリにインストールします。 Shebang

    c: c言語をスクリプト感覚で実行出来る様にするコマンド
  • Cのエラーハンドリングと例外設計、例外処理のメモ - 百日半狂乱

    二十五日半狂乱、6日目(の分...orz)の記事 Cのエラーハンドリングを毎回やるのは面倒だ! 前回も言ったが、Cではエラーハンドリングに戻り値とerrnoを用いる. それはそうと例外設計において"無視"は大罪である. だから、関数を呼び出したら戻り値は漏らさずチェックすべきだ. ということで、例えば以下のように逐一戻り値をチェックする. if(send(sockfd, buf, len, 0) < 0){ ERROR("send"); exit(1); } あぁ、面倒だ. 一体コードのどの部分が正常系の処理なのか? ほとんどエラーハンドリング*1で埋め尽くされるじゃないか. そもそもエラーハンドリング部分に書くのは毎回同じコードだし、コードの繰り返しは防ぎたい. エラー処理部分をラッピングして楽をする unpv12eの中でラッパーを被せることによってこの面倒を回避する方法を知った. in

    Cのエラーハンドリングと例外設計、例外処理のメモ - 百日半狂乱
  • 1