タグ

cに関するdondoko_susumuのブックマーク (12)

  • 大学院生のためのLLVM | POSTD

    (注:2017/07/06、いただいたフィードバックを元に翻訳を修正いたしました。) この記事は、 LLVM コンパイラ基盤を使ってリサーチをする人のための入門書です。これを読めば、コンパイラに全く興味のない大学院生も、楽しみながらLLVMを使って優れた功績をあげられるようになるでしょう。 LLVMとは何か? LLVMは非常に優れていて、ハックしやすく、C言語やC++のような”ネイティブ”言語向けの、時代の先端を行くコンパイラです。 LLVMの素晴らしさに関しては他にも様々な話を聞くのではないでしょうか(JITコンパイラとしても使えるとか、C言語系列以外の様々な言語を強化できるとか、 App Storeからの新しい配信形態 であるとか、などなど)。もちろん全部当のことですが、今回の記事の目的としては、上述の定義が重要です。 LLVMが他のコンパイラと差別化される理由には、いくつかの大きな

  • Home ⚡ Zig Programming Language

    Zig is a general-purpose programming language and toolchain for maintaining robust, optimal and reusable software. ⚡ A Simple LanguageFocus on debugging your application rather than debugging your programming language knowledge. No hidden control flow.No hidden memory allocations.No preprocessor, no macros.⚡ ComptimeA fresh approach to metaprogramming based on compile-time code execution and lazy

  • 値渡し、ポインタ渡し、参照渡しの違い - Qiita

    #include<iostream> using namespace std; class MyClass{ public: int getI(); void setI(int i); private: int i; }; int MyClass::getI(){ return i; } void MyClass::setI(int i){ this->i = i; } void value(int i){ i++; cout << "Value in value: " << i << "\n"; // この関数内のiの値、main関数内のものとは別物。 cout << "Address in value: " << &i << "\n"; // この関数内のiのアドレス。上記同様main関数のものとは別物。 cout << "\n"; } void pointer(int *i){ //

    値渡し、ポインタ渡し、参照渡しの違い - Qiita
  • Gitのつくりかた | メルカリエンジニアリング

    はじめまして。サーバサイドエンジニアの @DQNEO です。 今日はGitのつくりかたをご紹介します。 C言語学習教材としてのGit Gitと同じものをゼロから作って何の意味があるのか?と思いますよね。 私がこの再発明をやり始めた動機は「C言語を書けるようになりたい」でした。 実際に途中までやってみたところ、 C言語がチョットデキるようになった Gitの内部構造に詳しくなった というメリットが得られました。 C言語を勉強する題材は、テトリスとかWebサーバとか他にいくらでもあるのですが、Gitを実装してみるのはかなりおすすめです。理由は下記の通りです。 内部構造が意外と単純 (ローカルで動かす分には)ネットワークの知識が不要 普段使っているツールで外部仕様がわかっているので、やるべきことが明確 余談ですが、家Gitのソースコードを参考にしようと思って読んでいたら、Linus Tovals

    Gitのつくりかた | メルカリエンジニアリング
  • C言語のdefineについて

    C言語のdefineについて、主なdefineの使い方、記号定数のdefine、関数マクロ、条件付き取り込みについて解説しています。 defineはC言語でのプリプロッセッサへの指示のひとつです。プリプロッセッサとは、コンパイルの前に前処理を行うプログラムのことです。下記の構文で記述すると、コンパイル時に前処理として、文字列1を文字列2に変換します。このような変換をマクロ置換と呼びます。

  • LLDBの使い方(チュートリアル日本語訳) | こん

    LLDBとは LLDBとはGDBとおなじ感覚で利用できる次世代デバッガです。きっと、内部ではLLVMのディスアセンブラを利用して解析しているのでしょう。ソースコードは後ほど読む予定ですが、まずは、使いかたをざっと勉強しました。 LLDBコマンドの使い方(チュートリアル日語訳) ここからは、Tutorialの日語訳です。この文章はLLDBと同じライセンスです。 コマンド体系 <noun> <verb> [-options [option-value]] [argument [argument...]] コマンドラインのパースはコマンド実行前に行われるため、書式は全コマンドについて同じ形式です。区切り文字はホワイトスペースです。ダブルクオートで囲うと区切り文字は無視されます。ダブルクオート中にバックスラッシュかダブルクオートが必要な場合のエスケープ文字はバックスラッシュです。 オプションの

  • ruby/ruby#495日本語解題

    三行で卜部って口だけ野郎でどうせたいしたもん書けないんでしょ? [1] [2]→ 見せてやんよゴラァ→ ごらんの有様教訓: 陰口は人に聞こえない所で。さすがに名指しはまずい。 どういうパッチかRubyのオブジェクトサイズを変更(大きく)する。そのことにより第一義的にはCPUキャッシュミスヒットが削減される。副次的作用として大きくなった余剰の領域にデータを詰め込めるので中間構造体を減らしてメモリアロケーションが最適化される。それらの総合的な結果として全体に高速化する。 前史とはいえこのアイディア、べつに最近涌いて出たものでもない。というか、俺がまだ大学院でNetBurstと戯れてたころの発想だから、かれこれ7~8年物だな。しかもこの間べつに秘密にしてたわけでもなくて、Rubyのオブジェクトって素数幅でいくなくね?ってのは、わりと口頭では折に触れて言ってたので、聞いたことがある人もいるはずか

    ruby/ruby#495日本語解題
  • 定数

    ●定数 定数とは,変数とは異なり,内容がずっと変化しない値のことである 定数の種類 定数には以下の4種類がある。

    定数
  • size_t型

    size_t型 C言語では、長さ、大きさ、サイズを表現する型として、 size_t の名前の型が使われます。 sizeof演算子や、strlen関数など、byte数や長さを表現するところで使われる型です。 この型は、<stddef.h>で定義される型ですが、通常は<stdio.h>や<stdlib.h>をインクルードすれば使えるようになる型です。 unsigned int をtypedef で、size_t の名前に定義されることが多いようですが、処理系依存の型でそう決まっているわけでもありません。 極端に大きな値でないと分かっている場合は、int型の変数で管理しても構いません。 ですが、その場合型が合わないので警告(warning)が指摘されることがあります。 その場合は、キャスト演算(int)で警告を抑えてください。 以下にその例を示します。 strlen、sizeof、fwriteの

  • Free Dynamic DNS(DDNS) by POP3,IMAP4,FTP,HTTP-BASIC for Home Server, VPS | MyDNS.JP

    pokotsun.mydns.jp is not accessible... Sorry. I do not know why this site is not working. If you know Administrator of this site, please contact directly. You may be able to see it in Google cache. For administrator ... MyDNS.JP did not received IP address from you over One week. Please check your notify system. If you restart notification of IP address, MyDNS.JP will apply your IP address to DNS

  • C言語でプログラムを作って動かした場合、プログラム領域、静的領域、スタック領域、ヒープ領域などと4つの領域が使われるそうですが、 これは何の仕様でそう決…

    C言語でプログラムを作って動かした場合、プログラム領域、静的領域、スタック領域、ヒープ領域などと4つの領域が使われるそうですが、 これは何の仕様でそう決まっているのでしょうか。 C言語の仕様?OSの仕様?コンパイラの仕様? (ちなみにK&Rを見てみましたが、そのようなことは記述されていませんでした)

  • C言語の基礎 - C言語入門

    ANSI規格の主要関数一覧 abs(絶対値を求める) atof(浮動少数点文字列を浮動少数点値に変換) atoi(整数文字列を整数値に変換) atol(整数文字列を整数値に変換) calloc(0に初期化してメモリ確保) ceil(数値の切り上げ) cos(余弦を求める) exit(プログラムの終了) fabs(絶対値を求める) fclose(ファイルポインタを閉じる) fgets(ファイルから文字列入力) floor(数値の切り下げ fopen(ファイルを開く) fputs(ファイルへ文字列出力) free(メモリ解放) getchar(1文字入力) gets(文字列入力) isalnum(英数字判定) isalpha(英字判定) iscntrl(制御文字の判定) isdigit(10進数字の判定) isgraph(図形文字の判定) islower(英小文字の判定) isprint(印

  • 1