タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

language-cに関するFalkyのブックマーク (4)

  • 旧石器時代のポインタをご利用の皆様へ ~provenance入門~ - Qiita

    現代のプログラミング言語ではポインタは単なるアドレスではなく,provenanceを伴った参照として扱われています. 世界は既に変わっています. 概要 ポインタは単なるアドレスではありません. ポインタにはprovenanceという,どのオブジェクト由来かの情報が含まれています. Provenanceを使うことで,最適化が効きやすくなったり,堅牢なプログラムを書きやすくなったりします. 追記: 次の英語記事を読むとprovenanceが必要な理由についてもっとよく知ることができます.クリックしよう!!!!(2020-12-15) https://www.ralfj.de/blog/2020/12/14/provenance.html ポインタはアドレスではない 次のCプログラムを見てみましょう. #include <stdio.h> #include <string.h> int main

    旧石器時代のポインタをご利用の皆様へ ~provenance入門~ - Qiita
    Falky
    Falky 2020/09/07
    普通に知らなかったのでビックリしてる。ポインタなにもわからない
  • リンカ

    ついに、リンカの説明をするときが来た。 ここに至るまでに、何度「リンカのところで説明する」と書いただろうか? ここまで読んできた人ならば、 リンカというものが、なにやら色々やっているんだな、というのはわかってきたのではないかと思う。 筆者が常々思っていることのひとつに、「C言語に関する書籍は、リンカの説明をおざなりにしすぎだ」というのがある。 多くのC言語の書籍は、 コンパイラがソースコードをアセンブリコードに変換します アセンブラがアセンブリコードを機械語に変換します リンカが機械語をリンクして実行ファイルが作られます と、いう解説がなされがちである。この説明を見たら、多くの人が、「え、リンクってなんですか?」と、思うに違いない。 アセンブラには、「人間が読めるニーモニックを、機械が読める機械語に変換する」みたいな、最低限の説明が付くものの、 リンカの説明は「リンクをします」のひとことだ

    Falky
    Falky 2020/07/13
    おぉ。。。
  • [C言語]構造体の各メンバがメモリ上にどう配置されてるか見てみた · DQNEO日記

    実験コード #include <stdio.h> struct DATA { int i1; int i2; int i3; char c1; char c2; char c3; double d1; double d2; double d3; }; int main() { struct DATA mydata; printf("address of i1 is %p\n", &(mydata.i1)); printf("address of i2 is %p\n", &(mydata.i2)); printf("address of i3 is %p\n", &(mydata.i3)); printf("address of c1 is %p\n", &(mydata.c1)); printf("address of c2 is %p\n", &(mydata.c2)); printf

    [C言語]構造体の各メンバがメモリ上にどう配置されてるか見てみた · DQNEO日記
    Falky
    Falky 2020/02/23
    構造体のメンバはメモリ空間上で順番に並ぶ(隙間がないわけではない)
  • C言語のアロー演算子(->)を分かりやすく、そして深く解説

    C言語プログラムで度々見かける「->」。これアロー演算子と言います。このページでは、このアロー演算子の意味、「*」「.」「->」の関係性、使い方をわかりやすく、そして深く解説していきたいと思います。 アロー演算子とは アロー演算子とは「->」のことです。ポインタが指す構造体(クラス)のメンバへアクセスするために使用します。例えば下記のように記述することで、構造体のポインタpdからメンバaにアクセスすることができます。 pd->a; アロー演算子の左側は構造体のポインタである必要があります。構造体だとしてもポインタでなければコンパイルエラーです。 でも、ポインタを習った時に、ポインタが指すデータへのアクセスには「*」を使うって教えてもらいましたよね?なぜ構造体の時だけポインタなのにアロー演算子を使うのでしょうか?実際のところアロー演算子ってどんな動きをする演算子なのでしょうか?この辺りを下記

    C言語のアロー演算子(->)を分かりやすく、そして深く解説
    Falky
    Falky 2020/02/21
    アロー演算子と構造体。Cにもアロー演算子ってあったんですね
  • 1