タグ

C言語に関するskypenguinsのブックマーク (17)

  • コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み


    Kernel/VMmold2 LLVMlld mold mold LLVMlld
    コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み
  • C言語から0番地へアクセスする方法についての個人的まとめ - /var/log/hikalium

    発端はuchan_nos氏によるこのツイートでした。 C言語で、当にメモリの0番地にデータを書きたいときはどうすりゃええの?— うー@技術書典8 Day1う31 BitNOS (@uchan_nos) 2020年2月12日 それに対する私のリプライ: uint8_t *p = 1; p--; *p = v;— hikalium (@hikalium) 2020年2月12日 私はこれで話が終わると思っていたのだが、どうやらそうではなかったらしく、色々な視点からの意見が加わりながら、話は混沌を極めたのでした…。 ということで、ここに私のこのツイートに対しての見解とか、わかったことをまとめておこうと思います。 私のリプライの背景について uchanさんが求める「0番地にデータを書きたい」という課題設定を、私はこのように解釈しました。 C言語において、整数0をポインタに変換すると、それはNULL

    C言語から0番地へアクセスする方法についての個人的まとめ - /var/log/hikalium
    skypenguins
    skypenguins 2020/02/16
    仮想記憶なら0番地にアクセスできるんちゃうの?と思ったワイは初心者だな
  • CとRustで一から作るマイクロカーネルOS


    OSIaaSOS Resea GitHub  LinuxOS
    CとRustで一から作るマイクロカーネルOS
  • cpp-aligned-allocate


    C/C++4KiB  posix_memalign  POSIX Unix  Linux  int posix_memalign(void **memptr, size_t alignment, size_t size);   sizeBytememptr  alignment 
    cpp-aligned-allocate
  • あなたのメモリはどこから来てる?malloc入門 - Qiita


      Akatsuki Advent Calendar 2017 22 C mallocglibcCC++newmalloc使
    あなたのメモリはどこから来てる?malloc入門 - Qiita
  • 例え話をしない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言語のポインタの説明 | 右や左の旦那様
    skypenguins
    skypenguins 2018/02/01
    ポインタが難しいとされてる理由は否が応でもコンピュータアーキテクチャ(論理アドレスとか)を理解しないといけないからだと最近気づいた
  • 2016年、C言語はどう書くべきか (前編) | POSTD


    (2016/3/2) (Mattx86-64 Unix/Linux/POSIX( 8-bit10CPUWin/Linux)) 201520152016 
    2016年、C言語はどう書くべきか (前編) | POSTD
  • POINTER「配列とポインタの完全制覇」「C言語 ポインタ完全制覇」


    C   Web  C (2) C ()  2     WWW      
  • 文字列リテラル - mkubara.com


     C/C++使稿   C/C++ :   char [] 使使newmalloc
  • テクノとしてのC言語、あるいはC99的書き方のすすめ - Qiita


     21st Century C1 21CC C19801st edition2C89 aka ANSI C3 C 21CC C is Punk Rock 4 5C 30C2015
    テクノとしてのC言語、あるいはC99的書き方のすすめ - Qiita
  • C初心者が知っておきたいヘッダーファイルとリンクの基礎知識


    CC1/4  CstaticexterninlineC CC使C C
    C初心者が知っておきたいヘッダーファイルとリンクの基礎知識
  • プログラミングの勉強を始めたときに、文系が挫折しやすい7つのポイント - paiza times

    こんにちは。谷口です。 ITエンジニア転職プログラミング学習に関する仕事をしている私ですが、学生の頃は文系の学部に所属し、プログラミングには全く触れたことがありませんでした。 新卒の時はそんな状態で、自分に特性があるのかどうかもよく分からないまま、面接をしてくれた人事担当者の「プログラミングは研修を受ければできるようになるから大丈夫」の言葉を信じて、受託開発をしている企業に入社しました。 そして新人研修で生まれて初めてプログラミングに触れ、勉強する中で、一歩進もうとする度につまずき、進んだと思ったら二歩前に覚えたことを忘れ、ということを繰り返しながら、何とか働いてきた時期がありました。 プログラミングのプの字も知らなかった新人の頃にどこでつまずいてきたかを思い出しながら書いてみたいと思います。 ■代表的なつまずきポイント ◆1.Hello Worldの段階からつまずく 研修で最初に勉強

    プログラミングの勉強を始めたときに、文系が挫折しやすい7つのポイント - paiza times
    skypenguins
    skypenguins 2015/10/20
    「何故こうなるのか」と聞かれて、きちんとした理由(「stdio.h」は標準(std=standard)入出力(「i」nput/「o」utput)のヘッダファイル とか)を説明されないと腑に落ちないし、こういうのって文理あんま関係ない気がする
  • やり直しC言語:複雑な宣言の読み方


    CGoC C Cint, char, float  int int  int   ... int  int   ... int 
    やり直しC言語:複雑な宣言の読み方
  • Linuxカーネルハッカーになる4つの方法 | Yakst


    Linux4 (CUSEC)   Linux Linux OSLinux
    Linuxカーネルハッカーになる4つの方法 | Yakst
  • システムコールを経由する生のLinuxスレッド | POSTD


    Linux UNIXfork()使Linux使Linux clone() 使
    システムコールを経由する生のLinuxスレッド | POSTD
  • C言語分かってなかった (I Do Not Know C) - Qiita


    Dmitri GribenkoBlog "I Do Not Know C"  CC BY-SA 3.0  CCC (undefined behavior)   Qiita/Markdown  1.
    C言語分かってなかった (I Do Not Know C) - Qiita
  • C言語で可変長引数をとる関数を、型安全に書く方法

    C言語の可変長引数は、型安全でない(まちがった型の引数を渡してもコンパイルエラーにならない)とされています。これは言語仕様の理解としては正しいのですが、特定の型の引数を任意の個数とる関数に限っては、マクロを使うことで型安全性を確保することができます。 任意の個数のdoubleを引数にとり、その和を返す関数「sumf」を例にあげて説明します。 C言語の可変長引数機構を使ってsumfを定義すると、以下のようになります。 #include <math.h> #include <stdarg.h> #include <stdio.h> static double sumf(double nfirst, ...) { double r = 0, n; va_list args; va_start(args, nfirst); for (n = nfirst; ! isnan(n); n = va_a

  • 1