タグ

cに関するokumuraa1のブックマーク (16)

  • TCC : Tiny C Compiler

    News [Note: I am no longer working on TCC. Check the mailing list to get up to date information.] Features SMALL! You can compile and execute C code everywhere, for example on rescue disks (about 100KB for x86 TCC executable, including C preprocessor, C compiler, assembler and linker). FAST! tcc generates x86 code. No byte code overhead. Compile, assemble and link several times faster than GCC. UN

  • Linuxのaliasについて

    Linuxのaliasについて 全てのディストリビューションを調べたわけじゃない(無理)が、 Linuxのシェルの初期化ファイルにデフォルトでこんな馬鹿aliasがある。 alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' これは一番やってはいけないaliasの典型だ。 まず第一の問題点。つねに -i がついているとかならず陥るのが 「yぽこ病」 だ。毎度毎度毎度毎度「けしますか<y/n>」と聞かれると、rmを起動す るためにENTERを打ったあとにさらに「y [ENTER]」を打つ癖がつく。最初のうち はほんとうに消していいか頭の中で確認するかもしれないが、人間は慣れる動物 なので、「rm ぽこ y ぽこ」までが一連の動作だと仕込まれる。これを「yぽこ 病」という。この時点で、-i がついていることの意味は消える。それ以前に、 人間工学的

  • C/C++のビルドの仕組みとライブラリ - かみのメモ

    研究でVisual C++を書くうちに、そういえばリンカとかライブラリの仕組みを理解していなかったな、と思ったので色々調べてみました。 書きやすいからという理由で説明口調の文章にしていますが、多分に間違いを含む可能性があります!(オイ) 気付いた部分があればコメントしていただけるとありがたいです。 ※ 2018/12/01 : #pragma once周りを追記しました ※ 2018/12/23 : ライブラリを使うためのビルド設定の話を追記しました スポンサーリンク もくじ 1. ビルドとは 2. C/C++のビルドの仕組み 2.1. プリプロセッサ 2.2. コンパイラ 2.3. アセンブラ 2.4. リンカ 3. ライブラリの種類と仕組み 3.1. ソースコードを配布 3.2. 静的リンク(static linking) 3.3. 動的リンク(dynamic linking) 3.4

    C/C++のビルドの仕組みとライブラリ - かみのメモ
  • ICU User Guide

    ICU User Guide This User Guide provides information on i18n topics for which ICU has services, and includes details that go beyond the C, C++, and Java API docs (and avoids some duplication between them). You may want to start with the Introduction to ICU or browse the navigation bar for a specific topic. This is the new home of the User Guide (since 2020 August).

  • 文字列から1文字だけを取り出す

    質問をすることでしか得られない、回答やアドバイスがある。15分調べてもわからないことは、質問しよう!新規登録して質問してみよう

    文字列から1文字だけを取り出す
  • C++erを簡易的にレベル分けすることで初心者詐欺を減らそうという試み - Qiita

    はじめに @takeokunn そういや私の昨日のツイートたどってみ、C++初心者(boost.asioが使えないとは言っていない)の人とQiitaでやりとりしてたから — yumetodo-C++erだけど化学科 (@yumetodo) 2016年5月3日 @yumetodo だからC++erの初心者は初心者じゃないんだよ!!!!!!!!!!!!! だからC++er嫌いなんだよ!!!!!!!! — たけてぃ (@takeokunn) 2016年5月3日 @takeokunn 当人も「そろそろ中級者かな」 と言ってた 因みに C初心者 < C++初学者 < C++入門者 < C++初心者 < C++規格書リーディング初心者 < C++中級者 < C++規格書リーディング中級者 < C++上級者 < C++規格書クラッカー — yumetodo-C++erだけど化学科 (@yumetodo)

    C++erを簡易的にレベル分けすることで初心者詐欺を減らそうという試み - Qiita
  • C言語入門 - コンパイルと実行 - GNU Compiler Collection(gcc) - Mac環境 - Webkaru

    Mac環境で、コンパイラー「GNU Compiler Collection(gcc)」によるコンパイルと実行について確認します。 Mac - コンパイルと実行(gcc) VimやCotEditorなどのテキストエディタを使って、以下のプログラムをhello.cというファイル名で作成します。作成したファイルはデスクトップに保存します。 #include<stdio.h> int main() { printf("Hello, World\n"); return 0; } 次に「Finder」を起動し、「アプリケーション」→「ユーティリティ」から「ターミナル」を起動します。 cdコマンドで作業ディレクトリをデスクトップに移動します。 $ cd ~/Desktop/ gccコマンドで、hello.cをコンパイルします。 $ gcc hello.c コンパイルが成功すると実行ファイル(a.out)

    C言語入門 - コンパイルと実行 - GNU Compiler Collection(gcc) - Mac環境 - Webkaru
  • C++コンパイラはあなたよりも良いコードを書く - Qiita

    最適化 皆さんご存じの通りC++という言語は速度しか取り柄がありません。複雑怪奇な構文、異常量のコンパイルエラー、何が起きるかわからない未定義動作たち、、、それでもなお私たちがC++を使い続けるのは、そう、極めて速いからです。ちょっと前に流行ったD言語や最近流行りのRustが速いという噂ですが、結局ほとんどの場面で速度においてC++に勝ててはいません。個人的な偏見ですがC++のように速度のみを重視し、安全性を捨てない限りRustに未来はないでしょう。まあ、人から聞いた噂によるとRustの標準ライブラリの中身はunsafeなコードが敷き詰められているらしく、なかなか速いようですが。いずれRustが廃れてUnsafe Rustの方が人気が出たりするかもしれませんね。とりあえず、最も速度面で優れている言語はC++といっても過言ではないでしょう。 そして、その圧倒的な速度を支えるのが何といってもC

    C++コンパイラはあなたよりも良いコードを書く - Qiita
  • 【C言語/C++】データ型のサイズ・範囲の一覧【32bit/64bit環境】

    32bit/64bit環境におけるデータ型の範囲とサイズ(バイト単位)とビット幅の一覧表です。 一般的な32/64bit環境であれば、long型以外の型については両環境で共通のサイズとなります。long型のサイズについては、32ビット環境では4byte(32bit)、64ビット環境では8byte(64bit)で表現されますが、ただし、64bitWindowsで採用されているデータモデル「LLP64」ではlong型のサイズがint型と同等の4byte(32bit)になる点に注意が必要です。 文字型 型名サイズビット幅範囲

  • WindowsのVSCodeでclang-formatが効かない時の確認と対処 - Qiita

    TL;DR 症状:WindowsVSCodeでC/C++のファイルを編集時、関連プラグインがインストールされていて、かつ「Format on Save」が有効になっているにも関わらず保存時にフォーマッタが走らない。 確認方法:C/C++のファイルを開いた状態で、コマンドパレットから「ドキュメントのフォーマット (Format Document)」を実行すると、右下に「write EPIPE」というエラーが出たらこれ。 対応: ここから、「Windows 64 bit」をダウンロードしてLLVMをインストールし、clang-formatにパスを通し、VS Codeを再起動する。 関連issue 詳細 もうTL;DRに書いた通りなんだけれど、WindowsVSCodeでclang-formatが効かなくなった時の覚書。 VSCodeでC/C++のファイルを編集する際、まずC/C++のプラグ

    WindowsのVSCodeでclang-formatが効かない時の確認と対処 - Qiita
  • 7of9(0x70f9=28921): "#music Amiel Lovesong 長いこと聞いているが、曲調だけで聞いていた 耳…" - Qiitadon

    サービス終了のお知らせ Qiitadonは2022年2月28日をもちましてサービス提供を終了いたしました。 長らくご利用いただき、誠にありがとうございました。 Qiitadonの規約上のデータ保持のポリシーとしては、IPアドレスを含むサーバーログを90日に渡り保持すること、登録されたユーザーとその投稿に関連付けされたIPアドレスを5年以内に渡って保持することに努める旨を記載しておりました。 ですが、Qiitadon終了を迎えるという状況変更及び情報管理の観点より、各データは、2022年3月31日までは保持しますが、2022年の間には削除いたします。ご了承願います。

    7of9(0x70f9=28921): "#music Amiel Lovesong 長いこと聞いているが、曲調だけで聞いていた 耳…" - Qiitadon
  • Dockerの仮想NICでraw socketプログラミングをやってみる | Life Tips(跡地)

    Dockerの仮想NICでraw socketプログラミングをやってみる 2017年8月9日 / kamaboko / 0 Comments 前回に引き続き、Dockerのネットワーク周りです。 今回はDockerの仮想NICをraw socketで扱ってみようと思います。 Dockerの仮想NICはホストOS上で見えるvethとip linkの関係にあり、対応するvethにパケットを送信するとコンテナ内のethに転送されます。 そしてホストOS上で見えるvethは、通常のNICと同じように扱えます。 Docker標準ではこのvethがLinux bridgeであるdocker0というブリッジに接続されますが、前回はvethをdocker0から剥がしてOpenvSwitchに接続しました。 これによりVLANが扱えたり、OpenFlowでパケット転送を制御したりが可能となりました。 今回は

    Dockerの仮想NICでraw socketプログラミングをやってみる | Life Tips(跡地)
  • 7of9(0x70f9=28921): "#music Amiel Lovesong 長いこと聞いているが、曲調だけで聞いていた 耳…" - Qiitadon

    サービス終了のお知らせ Qiitadonは2022年2月28日をもちましてサービス提供を終了いたしました。 長らくご利用いただき、誠にありがとうございました。 Qiitadonの規約上のデータ保持のポリシーとしては、IPアドレスを含むサーバーログを90日に渡り保持すること、登録されたユーザーとその投稿に関連付けされたIPアドレスを5年以内に渡って保持することに努める旨を記載しておりました。 ですが、Qiitadon終了を迎えるという状況変更及び情報管理の観点より、各データは、2022年3月31日までは保持しますが、2022年の間には削除いたします。ご了承願います。

    7of9(0x70f9=28921): "#music Amiel Lovesong 長いこと聞いているが、曲調だけで聞いていた 耳…" - Qiitadon
  • 低レイヤを知りたい人のための Cコンパイラ作成入門

    はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム このには一冊のに盛り込むにはやや欲張りな内容を詰め込みました。書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 このでは、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう

  • わずか16KB! WebAssemblyで動くミニC言語オフラインコンパイラ&インタプリタ webci0

    ruby4ijを早速使っていただきました!「風船 Ruby 版 (ruby4ij)/Kidspod;」 ただ、なかなかにやっかいな開発環境づくり。開発するために必要なツールが多く、それぞれがバージョンアップするので環境構築方法が変わってしまったりして鬼門です。 そこで便利なweb技術。クラウド処理もありですが、IchigoJam web でも使っている、エッジ技術WebAssemblyを使ったパパっと手元で軽快動作を目指します。 手始めに、こちら学習用ミニCコンパイラ「ci0」を移植して作った「webci0」 「webci0 - mini C compiler ci0 in WebAssembly」 C言語風に書いたプログラムをスタックマシンなVM用マシン語に変換、インタプリタとして実行します。標準関数は文字列表示のputstrと数表示のputnumのみ。メイン部分は500行ちょっとのオ

    わずか16KB! WebAssemblyで動くミニC言語オフラインコンパイラ&インタプリタ webci0
  • 例え話をしないC言語のポインタの説明 | 右や左の旦那様

    まえおき 巷では「プログラマーになりたい人に初学者にとって、ポインタという考え方がわけわかめ」という話がよくあります。 そこでいろいろな人が「ポインタは住所だ」とか「変数がハコで」とか手を変え品を変え分かりやすいように説明してくれています。 それでもなお「ポインタがわかりづらい」という人が後を絶ちません。 もういっそのこと、例え話をやめてド直球で攻めたらいいんじゃないでしょうか。 Hello, Worldより簡単に サンプルコード 以下のコードを考えます。 void main() { int a; int b; int c; a = 1; b = 2; c = a + b; } 「#include <stdio.h>」なんていう謎のオマジナイはこの際ナシです。あんなもの無くたってC言語は成り立ちます。 まぁ見ての通り、どこにも何も出力されませんが。 このプログラムは、「c = a + b」

    例え話をしないC言語のポインタの説明 | 右や左の旦那様
    okumuraa1
    okumuraa1 2018/02/01
  • 1