タグ

cに関するsomathorのブックマーク (51)

  • C言語を学習するためのおすすめ書籍5選 - 私の戦闘力は53万マイクロです

    C言語は1972年にAT&Tベル研究所で開発されたプログラミング言語です。 「そんな古臭い言語、今時使うの?」と思う人もいるかもしれませんが、 ハードウェアとの親和性の高さ メモリ管理などにおける自由度 処理速度の速さ など利点も多くあり、今日では主に組込み系・機械制御系の分野で多く使用されています。 当ブログで独自に実施したプログラミング言語人気ランキングでも4位にランキングしており、根強い人気が伺えます。 【2018年】月間検索回数から見るプログラミング言語人気ランキング 今回の記事では、C言語を学習するのにおすすめの書籍を7冊紹介します。 【初級者向け】Cプログラミング入門以前 【初級者向け】はじめてのC 【初級者向け】独習C 【脱・初心者向け】C言語 入門書の次に読む 【初級者~中級者向け】C言語ポインタ完全制覇 【中級者向け】C言語によるオブジェクト指向プログラミング入門 【中

    C言語を学習するためのおすすめ書籍5選 - 私の戦闘力は53万マイクロです
  • 「ふつうのLinuxプログラミング」でLinuxの基本概念やシェルの仕組みについて学んだ - $shibayu36->blog;

    最近golangでCLIツールを作っていたのだけど、Linuxのお作法とかいまいち分かっていなかった。そこでそのあたりのことが学べそうな「ふつうのLinuxプログラミング」を読んだ。 ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べるgccプログラミングの王道 作者:青木 峰郎SBクリエイティブAmazon このLinuxにおいてC言語でプログラミングする方法を、Linuxでの重要な概念も含めて教えてくれる。このを読めばとりあえずC言語を使ってLinux用のプログラムを書き始めることが出来るようになりそうだった。 それでC言語を使わない場合でも役に立つの?ということだけど、非常に役立ちそうで面白かった。なぜなら、単なるプログラミングの方法を教えてくれるだけではなくて、 Linuxの重要な考え方をファイルシステム・プロセス・ストリームという概念にまとめて教えてくれ

    「ふつうのLinuxプログラミング」でLinuxの基本概念やシェルの仕組みについて学んだ - $shibayu36->blog;
  • すごいC言語のマクロ __is_constexpr - Qiita

    #define __is_constexpr(x) \ (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8))) #include<stdio.h> #define Def 10 #define __is_constexpr(x) \ (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8))) enum test{Enum}; int main(){ int Val = 10; const int Const_val = 10; int a = __is_constexpr(Val); int b = __is_constexpr(Const_val); int c = __is_constexpr(10); int d = __

    すごいC言語のマクロ __is_constexpr - Qiita
    somathor
    somathor 2018/04/20
  • 整数論テクニック集 - kirika_compのブログ

    「整数論テクニック集」を、pdfとして公開しました。整数論の問題を解くときに必要なテクニックを体系的にまとめた文章です。AtCoder のレーティングが水色から赤下位程度の方を、対象読者にしています。

    整数論テクニック集 - kirika_compのブログ
  • Cプログラム高速化研究班を読んだ : sonots:blog

    Cプログラム高速化研究班を読んだ : sonots:blog
  • printf()のソースコードで、ソースコードリーディングのコツを身に付ける

    書籍の中から有用な技術情報をピックアップして紹介するシリーズ。今回は、秀和システム発行の書籍『ハロー“Hello, World” OSと標準ライブラリのシゴトとしくみ(2015年9月11日発行)』からの抜粋です。 ご注意:稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。 ※編集部注:前回記事「OSのシステムコールの呼び出しとは&バイナリエディタの使い方」はこちら 標準入出力関数の実装を見る printf()は指定したフォーマットに従って文字列出力を行うための標準ライブラリ関数だ。入門書では定番の関数であるため、利用したことがないという人は少ないことだろう。 しかしそのprintf()の中の処理を読んだことがあるか、となると話は変わってくるのではないだろうか。これほど多く利用されているp

    printf()のソースコードで、ソースコードリーディングのコツを身に付ける
  • 初心者向け・C言語の練習問題をたくさん解ける学習サイトと本8選 - paiza times

    Photo by frontriver こんにちは。谷口です。 先日paizaが行ったアンケートで、「好きなプログラミング言語」の3位(※学生2位・社会人4位)にC言語がランクインしました。 paiza.hatenablog.com 学生人気が高いのは、情報系学部の授業でプログラミングの基礎として習うことが多いのも理由の一つかもしれませんね。 C言語は各実行環境のネイティブの機械語にコンパイルされて、CPUが直接コードを実行するため、処理速度が非常に高速な言語です。業務システムだけでなくOSやハードウェアの開発にも向いており、WindowsLinuxといったOSの開発にも使われています。 paizaにも「もっとC言語の勉強がしたい」「C言語でいろいろな問題が解きたい」といった声が多く寄せられていますので、今回はC言語の練習問題がたくさん解ける学習コンテンツを8件ご紹介します。 【目次】

    初心者向け・C言語の練習問題をたくさん解ける学習サイトと本8選 - paiza times
  • C言語を独学で習得するのに適した入門書を探してまとめてみた件について - 旧ID:itiriのブログ

    ※2017年11月8日、「やさしいC 第5版」「かんたん C言語」「ふつうのLinuxプログラミング」「C言語による スーパーLinuxプログラミング」「モダンC言語プログラミング」のリンクを修正。 Amazonで評判が良いを、発売日順に並べてみた。 入門書 脱 初心者 アルゴリズム リファレンス Linuxプログラミング プログラミング技術 デバッグ その他 厳選6冊 その他 Webサイト 入門書 『C言語改訂版1、2』を読んだ後に『独習C』を読めばだいたい理解できると思う。 やさしいC 第5版 (「やさしい」シリーズ) 作者: 高橋麻奈出版社/メーカー: SBクリエイティブ発売日: 2017/06/14メディア: 単行この商品を含むブログを見る価格2,700円高橋麻奈さんのはどれも分かりやすい(『やさしいJava』とか、『やさしいXML』とか)。ただし内容は薄いので、他のプログラ

    C言語を独学で習得するのに適した入門書を探してまとめてみた件について - 旧ID:itiriのブログ
  • Language C FAQ

    C言語 FAQ 日語訳 このページは北野 欽一さんが日語訳されたC FAQをHTML化したものです。 著作権等に関しては「C言語FAQと日語版について」をご覧ください

  • 私はC言語を知らない | POSTD

    (注:2017/04/27、いただいたフィードバックを元に翻訳を修正いたしました。) この記事では、皆さん(特にC言語のプログラマ)に「自分はCを分かっていなかった」と気付いてもらうことを目標にしています。 Cの落とし穴は、思っているよりもずっと身近なところにあります。ちょっとしたコードにも 未定義の動作 が潜んでいることを以下で示しましょう。 この記事はQ&A形式になっており、それぞれの例題は独立したソースコードとして扱ってください。 1. Q: これは正しいコードでしょうか? (変数の二重定義エラーが発生するでしょうか。上述の通り、これは独立したソースファイルであり、関数体や複合ステートメントの一部ではありません) 解答 A: 正しいコードです。1行目は仮定義であり、2行目でコンパイラが処理した後に “定義” になります。 2. extern void bar(void); void

    私はC言語を知らない | POSTD
  • コサイン類似度に基づくソート処理の実装方法とその性能比較

    文書の類似度を計算する方法に「コサイン類似度」を用いる方法があります。 これは、出現する単語を出現回数などで数値化して、空間ベクトルに変換した上でベクトル同士の類似度を計算する、という手法です。 コサイン類似度 http://www.cse.kyoto-su.ac.jp/~g0846020/keywords/cosinSimilarity.html 最近、このコサイン類似度を使って、似ているデータを検索するWebアプリを試しに作っていたのですが、ふと、 「このコサイン類似度を使ったソート処理をPostgreSQLでどのように実装するともっとも高速な実装になるのだろうか。また、現実的なパフォーマンスを考えた時にデータ量や次元のサイズはどこまで増やせるのだろうか」 ということが気になりました。 PostgreSQLは、その拡張性の高さがウリの一つですが、そのため「UDFを作る」ということを考え

    コサイン類似度に基づくソート処理の実装方法とその性能比較
  • gdbでアドレスが指す先のアドレスをdereferenceするコマンドを作った - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    gdbであるアドレスがアドレスを指している場合のdereferenceを簡単にやりたかったのでpythonでコマンド作ってみました。 これは例えばcのコードがこうで、 void func(char *p) { printf("[*] %s\n", p); } func()のディスアセンブル結果にこのような処理があるとします。 0x000000000040066e <+8>: mov %rdi,-0x8(%rbp) このとき、rbp - 8のアドレスは0x7fffffffdc68で、ここはアドレス0x0000000000602010を指しています。 (gdb) x/gx $rbp - 8 0x7fffffffdc68: 0x0000000000602010 このアドレスが指す内容は以下のようにしてdereferenceできますが、ちょっと面倒ですよね。 (gdb) x/s *(char **

    gdbでアドレスが指す先のアドレスをdereferenceするコマンドを作った - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
  • C言語、知ってるつもり? | POSTD

    「Cならわかるよ」というプログラマーは大勢います。確かにCの文法はよく知られているし、44年の歴史を誇るわけだし、あいまいな機能に悩まされることもありません。簡単ですよね! あ、「Cならわかるよ」と 言うだけなら 簡単ですよねっていう意味ですよ。学校で習った人もいるだろうしお仕事で使ったことがある人もいるでしょう。覚えることもそんなに多くないし、完璧だという人もいるかもしれません。いいでしょう。でも、Cって実は、そんなにシンプルではないのです。 嘘だと思うなら、今から挙げる問題を解いてみましょう。たった5問です。基的にはどれも同じで「戻り値は何ですか?」という問題ばかりです。四択方式で、どの問題も正解はひとつだけです。さあどうぞ。 第1問

    C言語、知ってるつもり? | POSTD
  • C/C++中規模プロジェクトのための超シンプルなMakefile | POSTD

    私は多くの小規模プロジェクトで Make を使ってきましたが、より大きな規模のプロジェクトになると、それは非常にうんざりするようなものでした。最近までは、自分のビルドシステムに行いたいことが4つあったのですが、Makeでの方法が分かりませんでした。 out-of-sourceビルド(オブジェクトファイルが、ソースとは分離されたディレクトリにダンプ出力されます) 自動生成される(かつ正確!)ヘッダの依存関係 オブジェクト/ソースファイルのリストの自動的な決定 インクルードディレクトリのフラグの自動生成 以下にこれらの全てを行える、C、C++、およびアセンブリで動作するシンプルなMakefileを紹介します。 MAKEFILE TARGET_EXEC ?= a.out BUILD_DIR ?= ./build SRC_DIRS ?= ./src SRCS := $(shell find $(S

    C/C++中規模プロジェクトのための超シンプルなMakefile | POSTD
  • C/C++プログラマのための開発ツール

    Windows 11 information that can be used at the development siteAtomu Hidaka

    C/C++プログラマのための開発ツール
  • C/C++プログラマのための開発ツール - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズ・ラボの光成です。 先日、社内で主にLinux上でC/C++を用いている開発者向けの講義をしました。 「こんなことができる」と知ってもらい、興味を持てば各自で勉強してもらおうと広く浅くツールを紹介しました。 gtags, ASan, Valgrind, addr2line, cppcheck, SystemTap, perfなどです。 興味があれば講義資料「C/C++プログラマのための開発ツール」をごらんください。 コンパイラオプション 受講者には新人やサイボウズ・ラボユースの学生もいたので基的なところから紹介しました。 C/C++コンパイラを使うときはできるだけ警告オプションをつけるのが望ましいです。 警告が出るのは自分のコードの書き方に不備があることが多いからです。 gccやclangでは-Wall -Wextraは基としてそれ以外にも有用なオプションがあります(C++

    C/C++プログラマのための開発ツール - Cybozu Inside Out | サイボウズエンジニアのブログ
  • 教養としてのC言語プログラミング入門は成立するのか - 檜山正幸のキマイラ飼育記 (はてなBlog)

    比較的に短い期間のなかで、プログラミングの基的なことを勉強する(させる)とき、どんな話題や課題を選ぶべきでしょうか? ここでの「基的」とは、「将来、もっと発展的なことを学ぶための土台を作る」という意味ではありません。「入門者でも手が届く典型的な事項」という程度の意味です。教養としてプログラミングをかじるときに、どこをかじるべきか? という問〈とい〉と言ってもいいでしょう。 使うプログラミング言語はC言語です -- と、ここでズッコケる人がいそう。そもそも、入門になんでC言語使うんだよ!? って話は当然あるんですが、まー、そこは「なんらかの事情でC言語しかない」前提にします。実は、この前提のテキストと問題集があったのですが、それを見て僕が感じたことを雑駁に書きます。 内容: パラメータの与え方:scanf()を使う scanf()でいいのか? コマンドライン引数 標準入力の利用 バッファ

    教養としてのC言語プログラミング入門は成立するのか - 檜山正幸のキマイラ飼育記 (はてなBlog)
    somathor
    somathor 2016/07/28
  • Linuxカーネルのコードを読んで勉強になったこと - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    Linuxカーネルのコードを読んでて、なるほど〜と思うことはよくあるけど、その中でも特に今までの考え方をぶち壊してくれたのはなんだっけと思ったところ、やっぱりリスト構造かなと言うところ。 c言語でリスト構造を作る場合、一般的な教科書方式だと↓のようにデータとnextポインタは密結合になってると思います。これの場合、struct foobarのポインタをnext要素に使っているので、他の構造体(例えば、struct hogehoge)で同じことをしようとすると、その構造体ではstruct hogehoge *nextというメンバ変数を持つ必要があります。 ヘッド要素はstruct foobarです。 struct foobar { int n; char s[64]; struct foobar *next; }; struct foobar head; Linuxカーネルの場合、データとリ

    Linuxカーネルのコードを読んで勉強になったこと - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
  • 2016年、C言語はどう書くべきか (前編) | POSTD

    (訳注:2016/3/2、いただいた翻訳フィードバックをもとに記事を修正いたしました。) (訳注:著者のMattより、「文中で明言はしていないが、この記事の内容はx86-64 Unix/Linux/POSIXでアプリケーションをプログラミングする場合にフォーカスしている。他のプログラミング領域では、対象とするシステムに応じた(例: 8-bitの組み込みシステム、10年前のコンパイラ、多くの異なるCPUアーキテクチャで動く必要のあるアプリケーション、Win/Linuxでのビルド互換性など)特有のアドバイスが必要」との補足を頂いております。) 以下の文章は2015年の始めに書いたドラフトで、今まで公開していませんでした。私のドラフト用フォルダの中で誰の目も引かなかったため、大部分が書いた時のままです。公開するにあたり、単純に2015年を2016年に変更しました。 必要な修正、改善、苦情があり

    2016年、C言語はどう書くべきか (前編) | POSTD
    somathor
    somathor 2016/02/19
  • テクノとしてのC言語、あるいはC99的書き方のすすめ - Qiita

    以下、読書感想文としてのポエムである。 21st Century C1(以下 21CC と略)という、いささか変わったがある。C言語のプログラマの多くが1980年代の知識に固まってしまっているのを打破しようと書かれたなのだろうと、ざっと自分が1st editionを読んだ感じ2では思っている。C89 aka ANSI Cがいまだに標準だと思っている人3には、おすすめかもしれない。 「Cはパンクロックだ」 21CCでは C is Punk Rock 4 という表現が書籍の最初と最後に出てくる。このパンクロックが何であるかについての議論はしない5。ただ、パンクロックの例えが「シンプルかつ荒削りだけど力強い」言語に対するものであるというのは、個人的なパンクロックへの印象、そしてC言語の特徴をふまえれば良くわかる。 私も気がつけば30年ぐらいC言語で仕事をしていたりする。そして現在の2015年

    テクノとしてのC言語、あるいはC99的書き方のすすめ - Qiita
    somathor
    somathor 2015/12/23