タグ

programmingとC++に関するdynamicsoarのブックマーク (18)

  • tdm-gcc

    TDM-GCC 10.3.0 is now available, along with GDB 10.2, binutils 2.36.1, and new versions of the MinGW.org and MinGW-w64 runtime distributions. Thanks for your patience! Keep reading for download links and change notes. I'm proud to present a new series of TDM-GCC binaries based around GCC 9. It's been a long time coming, but getting back into the groove of delivering a Windows-friendly GCC toolchai

    tdm-gcc
  • gcc のデバッグ術

    Unix系コマンドラインユーザーのための、 gcc/g++/g77 による開発におけるデバッグ術を簡単に紹介します。 以下の内容は gcc 2.7.2.3 での動作は確認しています。 g++/g77 でも恐らくは通用すると思うのですが、 ひょっとすると異なる部分があるかもしれません。 筆者は g++/g77 の使用経験がないので、その場合は御容赦を願います。 実行前 キーワード「コンパイルオプション, -Wall, -O2, -O4」 まずは gcc にオプション opt'-Wall' を付けてコンパイルし、 警告がなくなるまでソースを修正します。 これは 常識 です。 次に opt'-O4 -Wall' でコンパイルします。 「未初期化変数の使用」の警告 (`foo' might be used uninitialized in this function) は、 opt'-O4' を付

  • 計算物理のためのC/C++言語入門

    Last revised on May 25, 2000 UNIX & XWindow 環境における C/C++プログラミング言語の基礎とその計算物理への応用を解説します。 このホームページの古い版の偽ミラーサイトが存在するのでご注意ください。 物のサイトは http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/ です。 前書き 推奨図書一覧 C言語とC++言語の基礎文法の初心者向け解説 (プログラム初心者を対象としたC/C++言語の入門です) 第1章 C言語とC++言語の役割 第2章 簡単な計算 第3章 ループで繰り返し計算 第4章 配列で大量データ処理 第5章 関数で計算の分担 第6章 文字列の操作 第7章 ファイルの操作 第8章 グラフィック(XWindow System利用者向け) 高校物理の計算例 (高校生を対象として初歩的な物

    dynamicsoar
    dynamicsoar 2017/02/16
    Sympletic Integratorての知らなかった…
  • 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 | サイボウズエンジニアのブログ
  • 各言語におけるtrue/falseまとめ - 昼メシ物語

    たとえば PHP で、 if ($hoge) { ... } とか書いてあったら、 $hoge がどんな値のときに if の中身が実行されるのか即答できますか。 こういう書き方は多くの言語で可能ですが、言語によって何が真で何が偽になるのかが異なるので、それぞれまとめてみました。 C言語 C言語には bool 型が無い。 0 (int) だけが偽となり、それ以外はすべて真となる。 NULL 定数は stddef.h で以下のように ((void*)0) と定義されているため、偽値として使える。 意見が分かれそうなところですが、個人的にはNULLを偽値として使用するは好きじゃないです。 #ifndef __cplsuplus #define NULL ((void*)0) #else #define NULL __null #endif C++ C++になると bool 型が出てくる。C と同

    各言語におけるtrue/falseまとめ - 昼メシ物語
  • C++の記号一覧 (List of C++ symbols) - gununuの日記

    検索のしづらいC++の記号の意味をまとめてみました。C++11、C++14をはじめとして網羅的に集めたつもりです。 C言語についての記述もありますが、共通した記号であってもC++とCでは文法や動作の子細が異なる場合がありそのまま適用できないことがあります。また掲載してある記法は説明のために載せているのであってすべてが推奨できるわけではないことにご注意ください。用語や分類、解説はかなりいい加減です。 型[要素数]配列型(要素数は定数でなければならない。要素数を省略した型は不完全型)。 typedef int array[5]; //配列型int[5]にarrayという名前を付ける。 void f(int ptr[]); //関数の宣言に用いてvoid f(int* ptr);と同じ void f(int ptr[5]); //この場合要素数の記述は無意味で上記と同じ。 //動的配列の確保(ま

    C++の記号一覧 (List of C++ symbols) - gununuの日記
    dynamicsoar
    dynamicsoar 2015/01/22
    「auto 関数名(仮引数リスト) -> 戻り値型」これずっと探してた…なるほど…助かった。/アロー演算子検索可能性悪すぎて死ねる…/まさかのはてブでなくローカルブクマ前にしてた…
  • 本の虫: lambda 完全解説

    目的 この記事は、C++0xのlambdaを完全に解説せんとする目的を以て書かれた。サンプルコードは最小に留め、エラー処理等は省いた。この記事さえ読めば、今日からlambdaを恐れることなく使う物のC++0xプログラマになれるだろう。 lambdaとは何ぞや lambdaである。あるものは、lambda関数、あるいは無名関数という名称を使っている。いったいlambdaとは何なのか。 lambdaは関数である。また、特に名前はない。したがって、lambda関数、無名関数と呼ぶのは、間違ってはいない。しかしここでは、単にlambdaと呼ぶことにする。 lambdaを定義しよう lambdaは関数オブジェクトである。lambdaは関数オブジェクトである。これはとても大事なので二度書いた。lambdaは関数オブジェクト以外の何物でもない。ところが不思議なことに、皆lambdaが単なる関数オブジェ

  • C++11: Syntax and Feature

    C++11の文法と機能(C++11: Syntax and Feature) Copyright (C) 2013 江添亮. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GN

  • C++踏み込み編

    ホーム < ゲームつくろー! < C++踏み込み編 C++踏み込み編 基礎はやっぱり大切です。 曖昧・うろ覚えはありませんか? 「これって何だろう」と疑問に思っている事、ありません? ここでは、それらについて踏み込んで解説してみます。 思いつきと行き当たりばったりの更新になるでしょうが、 きっと役立つ備忘録です。

    dynamicsoar
    dynamicsoar 2015/01/15
    痒いところに手が届いてる(気がする)
  • C++ AMP Overview

    Note C++ AMP headers are deprecated starting with Visual Studio 2022 version 17.0. Including any AMP headers will generate build errors. Define _SILENCE_AMP_DEPRECATION_WARNINGS before including any AMP headers to silence the warnings. C++ Accelerated Massive Parallelism (C++ AMP) accelerates execution of C++ code by taking advantage of data-parallel hardware such as a graphics processing unit (GP

    C++ AMP Overview
  • _T("")マクロだのL""マクロだのLPCTSTRだのの世界一詳しい解説

    _T("")マクロについて 初心者の方へ 下の説明を読むのが面倒なら次のように設定を変更すれば わずらわしい思いはしなくてもよくなります。 また、下の設定をすればLPCTSTRとか訳の分からないものはconst char *と同じ意味になり、 自分でコードを書く時にも_T("") などと書く必要もなくなります。 VisualStudio2005での設定例(2003や2008でもほとんど同じです): プロジェクト名で右クリックしてプロパティを選択 (ここでは太文字でcppTestと書いてあるやつ) 左側のツリーで構成プロパティ→全般を選択するとこのようなものが出てくる。 デフォルトでは文字セットのところが『Unicode 文字セットを使用する』となっているはず。 これを『マルチバイト文字セットを使用する』に変更してOKを押すと設定完了。 上級者向けの説明 おそらくVisual Studio2

  • その14 ドキドキしないプリコンパイル済みヘッダ

    ホーム < ゲームつくろー! < C++踏み込み編 その14 ドキドキしないプリコンパイル済みヘッダー ちょっとしたテストやサンプルの為に書き捨てるプログラムではなく、大規模なプログラムを作成するとコンパイル時間が馬鹿にならなくなってきます。商用ゲームだと、規模は様々ですが、コンシューマ機で販売するような規模のプログラムになるとフルビルドで数時間からヘタをすると1日近くかかる場合もあります。ゲームプログラマになって初めて超絶に大規模なコードに触れ、さらにそれをフルビルドした時には、それはそれは延々と続くビルドにただただ驚いたのを覚えています。 そこまで大規模とは言わないまでも、ある程度規模が大きくなるとビルド時間を短縮したくなってくるものです。そういう時、割とお手軽で効果的にビルド時間を短くしてくれる仕組みが「プリコンパイル済みヘッダー」です。 C++はコードをコンパイルしリンクすることで

    dynamicsoar
    dynamicsoar 2015/01/08
    わかりやすくて涙が出そう/2013 Expressだと微妙に表記が違うが、分かる範囲
  • multicoreware / cppamp-driver-ng / wiki / Home — Bitbucket

    Atlassian Sourcetree is a free Git client for Windows. Atlassian Sourcetree is a free Git client for Mac.

  • 分割の定石

    第1項:変数の共有 第2項:extern宣言 第3項:ヘッダーファイルの重複防ぎ [1]変数の共有 前節では、最低限の構成でプログラムを複数ファイルに分割しました。 しかし、共有できたのは関数だけであり、変数の共有は行いませんでした。 複数のソースファイルに分けて開発を行う場合は、 関数だけでなく、変数や定数なども共有する必要が生じてきますが、 前章の方法では、変数を共有することは出来ません。 例えば、次のようにヘッダーファイル内で変数を宣言すると、 宣言が重複している、という意味のエラーが表示され、コンパイル出来ません。 /* sum.h */ int sum(int min,int max); int Public; このエラーをより正確に理解するには、宣言の意味を理解する必要があります。 これまで、関数にしろ変数にしろ、宣言する、と表現してきましたが、 実は、宣言に

    dynamicsoar
    dynamicsoar 2014/07/23
    わかりやすいー
  • C言語の正しいヘッダファイルの書き方 - saito’s blog

    最近、仕事でC言語での組み込み系の開発に携わっています。 開発中のコードを眺めていると、ヘッダファイル内にstatic関数のプロトタイプ宣言を記述していたり、ヘッダファイル内で不必要に他のヘッダファイルをインクルードしているなど、ヘッダファイルの書き方が分かっていないと思われる箇所が多々見られました。 実際、C言語の入門書でもヘッダファイルの書き方を詳しく説明しているものは、僕の知っている限りでは存在しないので、C言語を使っていてもヘッダファイルの正しい書き方を知らない人が少なくないのではないかと思われます。 そこで、このエントリでは、C言語のヘッダファイルの書き方について、僕が知っているテクニックをまとめてみました。 インクルードガードを書く ヘッダファイルファイルで他のヘッダファイルをインクルードしていると、いつの間にか同じヘッダファイルを2回インクルードしてしまうことがあります。 例

    C言語の正しいヘッダファイルの書き方 - saito’s blog
    dynamicsoar
    dynamicsoar 2014/07/23
    なるほどー。まさに詰まってたあたりがまとまってた。すごくありがたい。
  • ポインタ虎の巻~多次元配列の実現

    面白いことに、p == *p である。これはポインタが指す対象が配列でありポインタではないから、間接参照が生成されないのである(逆に言えばポインタの場合には、*p が間接参照をして、p != *p になる)。 上の表の結果と、二次元配列のシンボル x は、実質上一次元配列であることから、次のキャストは成功することになる。 int *p = (int *)x; だから次のように書ける。 int x[10][10]; int i; int *p = (int *)x; for( i = 0; i < 100; i++ ) { *p++ = i; } printf( "x[5][5] = %d\n", x[5][5] ); これは x が実質上一次元のポインタであることを示している。 この事情は関数引数の場合も同様である。二次元配列とポインタは混同されず、しかし int (*p)[10] とは一

  • コンパイルするファイル間の依存性はできるだけ減らそう 〜liboctaveへん〜 - akihiko’s tech note

    liboctave 利用時のコンパイルを「遅い」と感じたことはないだろうか.ここでは liboctave におけるヘッダファイルの依存関係を把握することにより,コンパイルを高速化する方法を検討する. Scott Meyers (スコット・メイヤーズ): Effective C++ (吉川訳, アスキー出版局, 1998) が指摘しているように,コンパイルするファイル間の依存性はできるだけ減らした方がいい(34項).特に liboctave のように大きなライブラリになると,コンパイル速度が顕著に違って来る. liboctave 利用時のコンパイルを高速化するために,ヘッダファイルの依存関係を把握しよう. liboctave の場合, octave/config.h と octave/Matrix.h をインクルードしておけば,大概の機能を利用できるようになる. SVD (特異値分解) とか

    コンパイルするファイル間の依存性はできるだけ減らそう 〜liboctaveへん〜 - akihiko’s tech note
  • ぷろぐらむめも : fopen_sとかsscanf_sとかの"_s"関数書き換え例まとめ

    2009年09月29日20:56 カテゴリプログラミングC/C++ fopen_sとかsscanf_sとかの"_s"関数書き換え例まとめ VC++8.0(VisualStudio2005)以降でC言語の関数を使っていてよく出る警告の例。 warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. CRT(Cランタイムライブラリ)のセキュリティ強化版("_s"が付いたやつ)があるからそっち使え、と。 ただ名前だけでなく引数なども変わってたりするので結構面倒。 なので例をまとめていこうかと。 fo

    dynamicsoar
    dynamicsoar 2014/05/27
    なるほど引数が違ったのか…助かった
  • 1