さあやってまいりました。
プログラムのノウハウをメモしていこうよ。
VB.NETだよ全員集合
就職できないよ
つっこみ歓迎!
ナレッジマネジメントしていこう。
探検
【知識】俺のためのプログラム覚え書き【共有】
■ このスレッドは過去ログ倉庫に格納されています
2013/02/03(日) 21:15:45.06
82片山博文MZ ◆T6xkBnTXz7B0
2014/12/10(水) 00:49:44.99ID:X4ZXIzIa mod 1, mod 2, mod 3, mod 5, mod 9, mod 10, mod 11のときは明らかに高速化できるね。mod (10の倍数)も自明。
mod 4, mod 8はケタを2で掛ける計算が必要。
mod 6は、4で。mod 7は、3で。
mod 4, mod 8はケタを2で掛ける計算が必要。
mod 6は、4で。mod 7は、3で。
2014/12/10(水) 00:53:36.42ID:X4ZXIzIa
×mod (10の倍数)も自明
2014/12/10(水) 21:19:23.96ID:+onBPWUl
85片山博文MZ ◆T6xkBnTXz7B0
2014/12/27(土) 19:47:43.18ID:Cc0RXd7d 【Makefileを書いてみよう】
makeコマンドは、Makefileというファイルに書かれたルールに従って、ファイル作成やビルドを支援する。詳しくは「man make」を参照。
ルールは次のように記述する。
変数1=値1
変数2=値2
...
# ルール1
ターゲットファイル: 作成に必要なファイル
<TAB>作成するためのコマンドライン1
<TAB>作成するためのコマンドライン2
<TAB>...
# ルール2
...
ここに、$(変数1)は「値1」に展開される。また、ある行においてシャープ(#)以降は一行コメントとなる。
ターゲットファイルを更新するかどうかは、必要なファイルの更新日時と比較して決定される。
Makefileは、IDEに頼らずにビルドを行う方法として覚えておきたい。
makeコマンドは、Makefileというファイルに書かれたルールに従って、ファイル作成やビルドを支援する。詳しくは「man make」を参照。
ルールは次のように記述する。
変数1=値1
変数2=値2
...
# ルール1
ターゲットファイル: 作成に必要なファイル
<TAB>作成するためのコマンドライン1
<TAB>作成するためのコマンドライン2
<TAB>...
# ルール2
...
ここに、$(変数1)は「値1」に展開される。また、ある行においてシャープ(#)以降は一行コメントとなる。
ターゲットファイルを更新するかどうかは、必要なファイルの更新日時と比較して決定される。
Makefileは、IDEに頼らずにビルドを行う方法として覚えておきたい。
86片山博文MZ ◆T6xkBnTXz7B0
2015/02/19(木) 20:58:29.89ID:XXveEoOV 【C/C++のコンパイル時間短縮】
結合度の高いモジュールは、仕様を早いうちに決めてなるべく変更しない。
中規模以上では、モジュールの仕様が定まったら、ヘッダーとソースに分け、分割コンパイルする。
ソースファイルが三つ以上なら、プリコンパイル済みヘッダーを使う。
同じような処理は関数やクラスにまとめて再利用する。
モジュール強度の高いモジュールをまとめる。
pImplイディオムを使う。
結合度の高いモジュールは、仕様を早いうちに決めてなるべく変更しない。
中規模以上では、モジュールの仕様が定まったら、ヘッダーとソースに分け、分割コンパイルする。
ソースファイルが三つ以上なら、プリコンパイル済みヘッダーを使う。
同じような処理は関数やクラスにまとめて再利用する。
モジュール強度の高いモジュールをまとめる。
pImplイディオムを使う。
87片山博文MZ ◆T6xkBnTXz7B0
2015/06/19(金) 23:51:33.10ID:0f7L9Mo9 【差分パッチを作る】
diff -Nru (古) (新) > my.patch
※最後に冗長な/などを付けないこと。
【パッチをあてる】
cd (新)
patch -p1 < my.patch
diff -Nru (古) (新) > my.patch
※最後に冗長な/などを付けないこと。
【パッチをあてる】
cd (新)
patch -p1 < my.patch
88片山博文MZ ◆T6xkBnTXz7B0
2015/06/27(土) 20:55:56.62ID:JmAIGVSo giflibの関数EGifSpewが、成功するとgifオブジェクトは閉じられているが、
失敗すると閉じたか閉じていないか、わからない。
処理が失敗したときもメモリーリークしないように作って欲しい。
失敗すると閉じたか閉じていないか、わからない。
処理が失敗したときもメモリーリークしないように作って欲しい。
89片山博文MZ ◆T6xkBnTXz7B0
2015/07/17(金) 20:25:57.34ID:Ifv8D+/7 【C/C++】
この構文、結構便利だ。gotoを使わずに済む。
do {
if (...) break;
if (...) break;
...
} while (0);
この構文、結構便利だ。gotoを使わずに済む。
do {
if (...) break;
if (...) break;
...
} while (0);
2015/07/21(火) 14:02:22.88ID:/4VVbVfg
【日本人にとって韓国のインターネットは危険】
あなたがK-POPファンであっても、韓国のインターネットを
見るのはやめた方がいい。韓国は、名前の知られた財閥企業の
ホームページにも堂々とウイルスが仕掛けられているほど、
ウイルスが蔓延している。韓国のウェブサイトは無法地帯だから、
日本人が閲覧していると判断すると、攻撃を仕掛けてくるかもしれない。
あなたがK-POPファンであっても、韓国のインターネットを
見るのはやめた方がいい。韓国は、名前の知られた財閥企業の
ホームページにも堂々とウイルスが仕掛けられているほど、
ウイルスが蔓延している。韓国のウェブサイトは無法地帯だから、
日本人が閲覧していると判断すると、攻撃を仕掛けてくるかもしれない。
91片山博文MZ ◆T6xkBnTXz7B0
2015/08/06(木) 16:22:03.56ID:4xD13DN7 【パッケージマネージャaptまとめ】
パッケージ検索:apt-cache search (文字列)
パッケージインストール(権限が必要):apt-get install (パッケージ名)
パッケージの削除:apt-get remove (パッケージ名)
ソース入手:apt-get source (パッケージ名)
パッケージ検索:apt-cache search (文字列)
パッケージインストール(権限が必要):apt-get install (パッケージ名)
パッケージの削除:apt-get remove (パッケージ名)
ソース入手:apt-get source (パッケージ名)
92片山博文MZ ◆T6xkBnTXz7B0
2015/10/23(金) 12:27:31.45ID:/zhY2mEN 不正なデータが含まれていない世界では、データ整合性チェックが省けて処理が早くできるはず。
93片山博文MZ ◆T6xkBnTXz7B0
2015/11/02(月) 19:09:42.10ID:N6XDKRqL 【パッケージ管理について】
最近のソフトウェア開発においては、パッケージ管理の標準化と省力化が重要になってきている。
Ubuntuではapt-getが使え、Visual StudioではNuGetが、MSYS2ではpacmanが
パッケージマネージャーとして採用されている。
いちいちライブラリーのソースをダウンロードしてコンパイルするのは、
時代遅れになるかも知れない。
最近のソフトウェア開発においては、パッケージ管理の標準化と省力化が重要になってきている。
Ubuntuではapt-getが使え、Visual StudioではNuGetが、MSYS2ではpacmanが
パッケージマネージャーとして採用されている。
いちいちライブラリーのソースをダウンロードしてコンパイルするのは、
時代遅れになるかも知れない。
94片山博文MZ ◆T6xkBnTXz7B0
2015/11/02(月) 19:55:39.16ID:N6XDKRqL 他のパッケージ管理システムとしては、RubyにはRubyGemsがあり、D言語にはdubが、
Mac OS XにはMacPortsやHomeBrewが、その他のLinuxにはyumがある。
Mac OS XにはMacPortsやHomeBrewが、その他のLinuxにはyumがある。
95片山博文MZ ◆T6xkBnTXz7B0
2015/11/02(月) 20:00:28.60ID:N6XDKRqL 自作のライブラリーのシェアを高めたいと考えているなら、
それをパッケージ化してこうしたパッケージ管理システムに登録するのも良いだろう。
それをパッケージ化してこうしたパッケージ管理システムに登録するのも良いだろう。
2015/11/03(火) 09:03:30.56ID:qMKmSapR
片山ウザい
97片山博文MZ ◆T6xkBnTXz7B0
2015/11/11(水) 20:12:09.25ID:Fj5jRqmp 複数のstd::mutexを使う場合、lockの後にunlockを呼ばないといけないのは
当たり前だが、lockの順序を間違うとデッドロックになることがある。
当たり前だが、lockの順序を間違うとデッドロックになることがある。
98片山博文MZ ◆T6xkBnTXz7B0
2015/11/25(水) 21:55:37.53ID:WGqqylpJ 64ビットUbuntuは開発環境としてはイケてない。パッケージマネージャがダメ。他探せ。
99片山博文MZ ◆T6xkBnTXz7B0
2015/11/28(土) 14:15:01.67ID:7rFxET1r GCCでデバッグ情報つきでコンパイルする (-gオプション)
$ gcc -g hoge.c -o hoge
コアダンプを出力する設定 (ulimitコマンド)
$ ulimit -c unlimited
GDBでコアダンプの解析
$ gdb hoge core
おもなGDBのコマンド
backtrace : 関数の呼び出し順表示 短縮形は bt
frame n : backtraceで表示された関数のn番目に移動
info locals : ローカル変数の一覧表示
info args : 引数の一覧表示
print var : 変数varの値表示
directory : ソースのディレクトリを指定
http://d.hatena.ne.jp/licheng/
$ gcc -g hoge.c -o hoge
コアダンプを出力する設定 (ulimitコマンド)
$ ulimit -c unlimited
GDBでコアダンプの解析
$ gdb hoge core
おもなGDBのコマンド
backtrace : 関数の呼び出し順表示 短縮形は bt
frame n : backtraceで表示された関数のn番目に移動
info locals : ローカル変数の一覧表示
info args : 引数の一覧表示
print var : 変数varの値表示
directory : ソースのディレクトリを指定
http://d.hatena.ne.jp/licheng/
100片山博文MZ ◆T6xkBnTXz7B0
2016/01/17(日) 20:22:46.64ID:uhuIV1e8 価値あるデータの自動生成は、無から価値を産み出す美味しいビジネスになる。
101片山博文MZ ◆T6xkBnTXz7B0
2016/01/17(日) 20:29:38.29ID:uhuIV1e8 >>98は撤回させて下さい。
apt-getでCPUを指定する方法をしらなかった。
apt-getでCPUを指定する方法をしらなかった。
102片山博文MZ ◆T6xkBnTXz7B0
2016/02/22(月) 01:57:34.60ID:C/gFN+RL 【プロジェクト作成にCMakeを使おう】
プロジェクトやMakefileを作成するための便利なツール、CMakeを使おう。
CMakeはさまざまな環境で動作するクロスプラットフォームなツールだ。
使い方はまず、プロジェクト設定のためのCMakeList.txtファイルを作成する。
「CMakeList.txt 書き方」で検索してみてくれ。
次にcmake . && makeだ。cmakeはプロジェクトファイルやMakefileを作成する。
cmakeの実行方法がわからないときはcmake-guiを代わりに使おう。
プロジェクトやMakefileを作成するための便利なツール、CMakeを使おう。
CMakeはさまざまな環境で動作するクロスプラットフォームなツールだ。
使い方はまず、プロジェクト設定のためのCMakeList.txtファイルを作成する。
「CMakeList.txt 書き方」で検索してみてくれ。
次にcmake . && makeだ。cmakeはプロジェクトファイルやMakefileを作成する。
cmakeの実行方法がわからないときはcmake-guiを代わりに使おう。
103デフォルトの名無しさん
2016/02/22(月) 01:59:35.23ID:C/gFN+RL104片山博文MZ ◆T6xkBnTXz7B0
2016/02/22(月) 02:27:22.49ID:C/gFN+RL 【CMakeのここがスゴい!】
☆最小限の記述でOK。いちいちMakefileを書く手間を省ける。
☆ビルドはマルチスレッド対応。
☆ヘッダーの依存関係を自動的に読み取る。
☆WindowsでもLinuxでもMacでも動作。
☆さまざまなバージョンのVisual Studio、Makefileなど、多数の開発環境に対応。
☆最小限の記述でOK。いちいちMakefileを書く手間を省ける。
☆ビルドはマルチスレッド対応。
☆ヘッダーの依存関係を自動的に読み取る。
☆WindowsでもLinuxでもMacでも動作。
☆さまざまなバージョンのVisual Studio、Makefileなど、多数の開発環境に対応。
105片山博文MZ ◆T6xkBnTXz7B0
2016/02/26(金) 14:47:20.21ID:5FBVx/js MSYS2における正しいパッケージの更新方法
http://qiita.com/k-takata/items/373ec7f23d5d7541f982
>MSYS2のpacmanを使ってパッケージを更新する場合、正しい手順を踏まないとパッケージが正常に更新できない場合があります。
http://qiita.com/k-takata/items/373ec7f23d5d7541f982
>MSYS2のpacmanを使ってパッケージを更新する場合、正しい手順を踏まないとパッケージが正常に更新できない場合があります。
106片山博文MZ ◆T6xkBnTXz7B0
2016/03/05(土) 23:54:19.25ID:niBmwPNn 【Gitで不要ファイル削除】
.gitignore で無視するように指定されているファイルを削除するコマンドは
「git clean -X -f」
である。
.gitignore で無視するように指定されているファイルを削除するコマンドは
「git clean -X -f」
である。
107片山博文MZ ◆T6xkBnTXz7B0
2016/03/08(火) 21:54:18.53ID:dCW2/Xzy コマンドプロンプトで「start .」を入力すると、
現在のフォルダが開かれる。
現在のフォルダが開かれる。
109片山博文MZ ◆T6xkBnTXz7B0
2016/03/13(日) 00:01:32.06ID:u6dP9Emt Linux MintのWebサイトが改ざんされ、ウイルスを配布していたという事件が
あったらしい。何者かがフリーソフトウェア、オープンソースに対する妨害活動を
行っているらしい。どこの企業とは言わないが。
あったらしい。何者かがフリーソフトウェア、オープンソースに対する妨害活動を
行っているらしい。どこの企業とは言わないが。
110片山博文MZ ◆T6xkBnTXz7B0
2016/04/01(金) 01:39:52.05ID:cbPhNKwQ ハンバーガーアイコンは、合同記号「≡」で表示できる。
111片山博文MZ ◆T6xkBnTXz7B0
2016/04/04(月) 20:53:35.14ID:IQfIiZrc 【clang-formatでC/C++ソースを整形しよう】
自分の好みではないコーディングスタイルのソースを
clang-formatというツール(Clangパッケージに含まれている)できれいに整形できる。
ソースをGoogleスタイルにしたい場合は、
$ clang-format -i --style=google *.cpp *.h
でOK。-iを付けると上書きされる。ただし
Googleスタイルの整形は#includeの順番を入れ替えるので注意が必要だ。
整形の前に必ずコピーバックアップしておこう。
自分の好みではないコーディングスタイルのソースを
clang-formatというツール(Clangパッケージに含まれている)できれいに整形できる。
ソースをGoogleスタイルにしたい場合は、
$ clang-format -i --style=google *.cpp *.h
でOK。-iを付けると上書きされる。ただし
Googleスタイルの整形は#includeの順番を入れ替えるので注意が必要だ。
整形の前に必ずコピーバックアップしておこう。
112デフォルトの名無しさん
2016/04/04(月) 21:02:52.57ID:n+E9DRML 良スレかと思ったが微妙なネタばかりだね
113片山博文MZ ◆T6xkBnTXz7B0
2016/04/25(月) 00:19:45.17ID:9Ydy9Lbh 【C++のライブラリをヘッダーだけにする】
もう.cppファイルの付いたライブラリは要らない?
定義を何もかもヘッダーに移して.cppファイルのコンパイルを減らそう。
やり方。
☆ 短い関数定義→インライン化。
☆ 長い関数定義→テンプレート関数にする。
☆ グローバル変数→インライン関数内のstatic変数への参照で代用。
☆ 定数→static const変数かマクロ定数かenumにする。
もう.cppファイルの付いたライブラリは要らない?
定義を何もかもヘッダーに移して.cppファイルのコンパイルを減らそう。
やり方。
☆ 短い関数定義→インライン化。
☆ 長い関数定義→テンプレート関数にする。
☆ グローバル変数→インライン関数内のstatic変数への参照で代用。
☆ 定数→static const変数かマクロ定数かenumにする。
114片山博文MZ ◆T6xkBnTXz7B0
2016/05/05(木) 00:33:28.45ID:Oq7RlKiI 【C/C++のスゴいライブラリー】
C/C++の役に立つ、実際に大いに役立っている素晴らしいライブラリーの
リストがここにある。
https://github.com/fffaraz/awesome-cpp
ソフトウェア開発の参考にしてね。
C/C++の役に立つ、実際に大いに役立っている素晴らしいライブラリーの
リストがここにある。
https://github.com/fffaraz/awesome-cpp
ソフトウェア開発の参考にしてね。
115デフォルトの名無しさん
2016/05/05(木) 04:15:50.22ID:4MuIXLBx116片山博文MZ ◆T6xkBnTXz7B0
2016/07/09(土) 06:33:01.30ID:Mz5tnssE 昔は……開発環境にお金を払わないとプログラマになれなかった。
今は……開発環境・マニュアルが無料でダウンロードできて誰でもプログラマになれるようになった。
ホントに恵まれてるね。
今は……開発環境・マニュアルが無料でダウンロードできて誰でもプログラマになれるようになった。
ホントに恵まれてるね。
117片山博文MZ ◆T6xkBnTXz7B0
2016/07/09(土) 20:51:20.86ID:Mz5tnssE 配列をインデックスで逆向きに処理する?
int a[9];
for (int i = 8; i >= 0; i--) a[i]...
それはstd::rbegin, std::rendでスマートに書き換えられるよ!
auto rend = std::rend(a);
for (auto it = std::rbegin(a); it != rend; ++it) *it...
int a[9];
for (int i = 8; i >= 0; i--) a[i]...
それはstd::rbegin, std::rendでスマートに書き換えられるよ!
auto rend = std::rend(a);
for (auto it = std::rbegin(a); it != rend; ++it) *it...
118デフォルトの名無しさん
2016/07/09(土) 20:58:56.18ID:KCNMgxTc i==0で i--はエラー
119片山博文MZ ◆T6xkBnTXz7B0
2016/07/09(土) 21:03:40.18ID:Mz5tnssE Boostはもっとスマートだよ。
#include <boost/range/adaptor/reversed.hpp>
for (auto i : boost::adaptors::reverse(a))
std::cout << i << std::endl;
#include <boost/range/adaptor/reversed.hpp>
for (auto i : boost::adaptors::reverse(a))
std::cout << i << std::endl;
120片山博文MZ ◆T6xkBnTXz7B0
2016/07/09(土) 21:07:41.44ID:Mz5tnssE >>118
int型なのでセーフ。このときC++では例外や実行時エラーは発生しない。
int型なのでセーフ。このときC++では例外や実行時エラーは発生しない。
121デフォルトの名無しさん
2016/07/09(土) 21:30:51.48ID:whD12s8T #define n (10)
int a[n];
for (size_t i=n; i>0; ) {
--i;
a[i] = ...;
}
逆順ならいつもこうしてるわ負の値などそもそも要らんのだよ
ループの終わりに固定されるforの第3項の存在は忘れたほうがいい
int a[n];
for (size_t i=n; i>0; ) {
--i;
a[i] = ...;
}
逆順ならいつもこうしてるわ負の値などそもそも要らんのだよ
ループの終わりに固定されるforの第3項の存在は忘れたほうがいい
123片山博文MZ ◆T6xkBnTXz7B0
2016/07/10(日) 22:32:22.78ID:5zTLoRwv124片山博文MZ ◆T6xkBnTXz7B0
2016/08/15(月) 22:46:50.42ID:ZZZ997rF Eigenは線形代数のC++用テンプレートライブラリです。
ベクトルや行列の計算が簡単にできちゃう!?
ベクトルや行列の計算が簡単にできちゃう!?
125片山博文MZ ◆T6xkBnTXz7B0
2016/10/18(火) 11:01:10.87ID:nS8R0gYs 【テストの自動化のやり方】
1.テストしやすいモジュール(部品)に分解する。例えば、電卓であれば、計算モジュールと表示モジュールに分ける。
2.テスト対象を構造体配列やテキストファイルなどを使ってデータ化する。
3.テストデータの各項目についてテストするテストプログラムを作る。
4.テストプログラムを実行する。
1.テストしやすいモジュール(部品)に分解する。例えば、電卓であれば、計算モジュールと表示モジュールに分ける。
2.テスト対象を構造体配列やテキストファイルなどを使ってデータ化する。
3.テストデータの各項目についてテストするテストプログラムを作る。
4.テストプログラムを実行する。
126片山博文MZ ◆T6xkBnTXz7B0
2016/11/03(木) 19:41:31.13ID:bkzCM1IA 【C++11】
可変長テンプレート引数に値をそのまま渡すと値渡しになってしまう。
参照を渡したいときはC++11のstd::ref, std::crefを使う。
可変長テンプレート引数に値をそのまま渡すと値渡しになってしまう。
参照を渡したいときはC++11のstd::ref, std::crefを使う。
127片山博文MZ ◆T6xkBnTXz7B0
2016/11/21(月) 02:32:53.38ID:bG1+lpHY effective c++入門
http://www002.upp.so-net.ne.jp/ys_oota/effec/
http://www002.upp.so-net.ne.jp/ys_oota/effec/
128片山博文MZ ◆T6xkBnTXz7B0
2016/11/21(月) 13:23:26.22ID:bG1+lpHY テスト用のWindowsの仮想マシンは無料で入手できる。
仮想マシンはVirtualBoxなどで動かせる。
仮想マシンはVirtualBoxなどで動かせる。
129片山博文MZ ◆T6xkBnTXz7B0
2016/11/30(水) 21:05:10.17ID:OQgCUTWg 【CとC++の両方でアクセスできるデータ構造】
typedef struct MY_DATA {
...
} MY_DATA;
#ifdef __cplusplus
class MyData : protected MY_DATA {
public:
...
};
#endif
これでC/C++でデータ構造を共通化できるぞ。
typedef struct MY_DATA {
...
} MY_DATA;
#ifdef __cplusplus
class MyData : protected MY_DATA {
public:
...
};
#endif
これでC/C++でデータ構造を共通化できるぞ。
130片山博文MZ ◆T6xkBnTXz7B0
2016/12/16(金) 17:38:47.69ID:7QWR4VpB 【gccのよく使うコマンドラインオプション】
-c
コンパイルのみでリンクはしない。
-o file.exe
-o file.o
出力ファイルを指定する。
-O0 (オーとゼロ)
最適化なし。
-O3
最適化する。
-g -ggdb
デバッグ情報を付加する。
-Idir
ディレクトリdirを#includeの検索パスに追加する。
-Ldir
ディレクトリdirをリンカの検索パスに追加する。
-c
コンパイルのみでリンクはしない。
-o file.exe
-o file.o
出力ファイルを指定する。
-O0 (オーとゼロ)
最適化なし。
-O3
最適化する。
-g -ggdb
デバッグ情報を付加する。
-Idir
ディレクトリdirを#includeの検索パスに追加する。
-Ldir
ディレクトリdirをリンカの検索パスに追加する。
131片山博文MZ ◆T6xkBnTXz7B0
2016/12/16(金) 17:47:14.03ID:7QWR4VpB 【gccの覚えておくと便利なコマンドラインオプション】
-lmylib
ライブラリlibmylib.aをリンクする。
-Wall -pedantic
初心者向けにていねいに警告をしてもらう。
-m32
32ビットプログラムとしてコンパイル・リンクする。
-m64
64ビットプログラムとしてコンパイル・リンクする。
-mwindows
ウィンドウズアプリとしてビルドする。
-lmylib
ライブラリlibmylib.aをリンクする。
-Wall -pedantic
初心者向けにていねいに警告をしてもらう。
-m32
32ビットプログラムとしてコンパイル・リンクする。
-m64
64ビットプログラムとしてコンパイル・リンクする。
-mwindows
ウィンドウズアプリとしてビルドする。
132片山博文MZ ◆T6xkBnTXz7B0
2016/12/16(金) 18:02:11.09ID:7QWR4VpB 【おまけ】
--version
バージョン情報を表示する。
-v --help
詳しいヘルプを表示する。
-std=c11
C11規格でビルドする。
--version
バージョン情報を表示する。
-v --help
詳しいヘルプを表示する。
-std=c11
C11規格でビルドする。
133片山博文MZ ◆T6xkBnTXz7B0
2016/12/16(金) 18:16:49.04ID:7QWR4VpB 【おまけ2】
-static
なるべくスタティックリンクとしてリンクする(依存するDLLファイルを少なくする)。
-shared
DLLファイルを作る。
※補足。ライブラリファイルを作成したいときはarというコマンドを使う。
-static
なるべくスタティックリンクとしてリンクする(依存するDLLファイルを少なくする)。
-shared
DLLファイルを作る。
※補足。ライブラリファイルを作成したいときはarというコマンドを使う。
134片山博文MZ ◆T6xkBnTXz7B0
2016/12/18(日) 16:18:29.48ID:hdD8XdI2 【三値論理】
論理学を勉強したなら、真(true)、偽(false)の意味は知ってるだろう。「三値論理」はその2つの値に加えて「未知(unknown)」という論理値を導入する。
なぜなら未知という値があると便利なことがあるからだ。例えば、あるブール値のテストにおいて「真の値ならテスト合格」、
「偽の値ならテスト合格」の他に「どちらの値でも合格」という意味の論理データを埋め込むことができる。C言語では次のように定義する。
typedef enum TRISTATE { TS_UNKNOWN, TS_TRUE, TS_FALSE };
ここでTS_UNKNOWNを先頭にしたのは、未知は既定値にする方が扱い易いからだ。
論理学を勉強したなら、真(true)、偽(false)の意味は知ってるだろう。「三値論理」はその2つの値に加えて「未知(unknown)」という論理値を導入する。
なぜなら未知という値があると便利なことがあるからだ。例えば、あるブール値のテストにおいて「真の値ならテスト合格」、
「偽の値ならテスト合格」の他に「どちらの値でも合格」という意味の論理データを埋め込むことができる。C言語では次のように定義する。
typedef enum TRISTATE { TS_UNKNOWN, TS_TRUE, TS_FALSE };
ここでTS_UNKNOWNを先頭にしたのは、未知は既定値にする方が扱い易いからだ。
135片山博文MZ ◆T6xkBnTXz7B0
2016/12/26(月) 20:50:03.00ID:+txY7xq1 【検索よけ】
君のホームページから検索エンジンのロボットを退散させる魔法のHTMLタグを伝授しよう。
これだ:
<meta name="robots" content="noindex,nofollow" />
君のホームページから検索エンジンのロボットを退散させる魔法のHTMLタグを伝授しよう。
これだ:
<meta name="robots" content="noindex,nofollow" />
136片山博文MZ ◆T6xkBnTXz7B0
2016/12/26(月) 20:53:07.17ID:+txY7xq1 【検索よけ補足】
このタグは<head> ... </head>の中に書かないと効果はない。
このタグは<head> ... </head>の中に書かないと効果はない。
137片山博文MZ ◆T6xkBnTXz7B0
2016/12/26(月) 21:08:02.83ID:+txY7xq1 noindex,nofollowのページを収集する凶悪なボットを思い付いた。
作っちゃダメだよ(たぶん違法)。
作っちゃダメだよ(たぶん違法)。
138片山博文MZ ◆T6xkBnTXz7B0
2017/01/04(水) 18:23:18.38ID:83LRywdJ 【C/C++制御】
gotoで地獄へ行くのをdo/break/whileに書き換えることができる。
...
goto hell;
...
goto hell;
...
hell: ...
return 0;
↓↓↓
do {
...
break;
...
break;
...
} while (0);
...
return 0;
gotoで地獄へ行くのをdo/break/whileに書き換えることができる。
...
goto hell;
...
goto hell;
...
hell: ...
return 0;
↓↓↓
do {
...
break;
...
break;
...
} while (0);
...
return 0;
139片山博文MZ ◆T6xkBnTXz7B0
2017/01/07(土) 23:50:41.70ID:ogQHxHuf 【世界で活躍する君達へ】
君達は素晴らしい可能性を秘めている。しかし、価値あるものは狙われ易い。
身の回りのセキュリティはしっかりしておこう。どんな天才でも薬物を盛られるとダメになる。
弁当箱と水筒には鍵を掛けておこう。
君達は素晴らしい可能性を秘めている。しかし、価値あるものは狙われ易い。
身の回りのセキュリティはしっかりしておこう。どんな天才でも薬物を盛られるとダメになる。
弁当箱と水筒には鍵を掛けておこう。
140片山博文MZ ◆T6xkBnTXz7B0
2017/02/24(金) 20:02:21.63ID:GmCeVF1B 開発者は太っていてもやせていてもdevと呼ばれる。
141片山博文MZ ◆T6xkBnTXz7B0
2017/03/24(金) 23:23:07.88ID:8fi/a9wO 【C++でstd::wcoutを使う前のおまじない】
#include <locale>
#include <clocale>
std::wcout.imbue(std::locale(""));
std::setlocale(LC_ALL, "");
#include <locale>
#include <clocale>
std::wcout.imbue(std::locale(""));
std::setlocale(LC_ALL, "");
142片山博文MZ ◆T6xkBnTXz7B0
2017/03/26(日) 19:19:48.46ID:YMOeuswC 【C++格言】
生ポインタをなるべく使うな。
生ポインタをなるべく使うな。
143片山博文MZ ◆T6xkBnTXz7B0
2017/03/29(水) 21:21:06.83ID:uG+6tdKu 【C++プログラミングを極めるには】
1. マニュアル(規格票)をよく読む。
2. C/C++ FAQをよく読む。
3. Effective C++をよく読む。
4. 実際にコードをよく書く。
1. マニュアル(規格票)をよく読む。
2. C/C++ FAQをよく読む。
3. Effective C++をよく読む。
4. 実際にコードをよく書く。
144片山博文MZ ◆T6xkBnTXz7B0
2017/03/29(水) 21:28:47.27ID:uG+6tdKu 5. デザインパターンを研究する。
6. IDEとデバッグ手法を極める。
6. IDEとデバッグ手法を極める。
145片山博文MZ ◆T6xkBnTXz7B0
2017/04/11(火) 01:19:00.42ID:Kut+59ha 【原因不明の障害は時刻を疑え!】
最近、ウィンドウズの内部時計が勝手に狂うという現象が多数確認されているらしい。
ビルドがおかしい、更新されない場合は、ウィンドウズやファイルの時刻を一度確認してはいかがだろうか。
最近、ウィンドウズの内部時計が勝手に狂うという現象が多数確認されているらしい。
ビルドがおかしい、更新されない場合は、ウィンドウズやファイルの時刻を一度確認してはいかがだろうか。
146片山博文MZ ◆T6xkBnTXz7B0
2017/04/11(火) 01:30:07.53ID:Kut+59ha (続き)ウィンドウズには、インターネット上の時計に常に同期するという機能があるが、
インターネット上の時計も狂うことがあるらしい。そうした場合は時計の同期を停止して、手動で時計合わせすると、
一時的に問題を避けられる。時計が狂った詳しい原因は不明。
インターネット上の時計も狂うことがあるらしい。そうした場合は時計の同期を停止して、手動で時計合わせすると、
一時的に問題を避けられる。時計が狂った詳しい原因は不明。
147片山博文MZ ◆T6xkBnTXz7B0
2017/04/17(月) 19:10:17.59ID:dVaQYL/0 小ネタ: Winでアウトラインフォントを列挙する時は
if (nFontType & TRUETYPE_FONTTYPE)
なんて判定の仕方はしてはダメ
PostScriptなotfは DEVICE_FONTTYPE 扱いされるのでこれもチェックする必要あり
if (nFontType & TRUETYPE_FONTTYPE)
なんて判定の仕方はしてはダメ
PostScriptなotfは DEVICE_FONTTYPE 扱いされるのでこれもチェックする必要あり
148片山博文MZ ◆T6xkBnTXz7B0
2017/04/22(土) 19:04:01.72ID:rLCodfG7 【MS-DOSの叡智】
MS-DOSの知識は決して無駄ではない。ウィンドウズが故障して、壊れていないファイルを取り出すときに、DOSのコマンドの知識が役立つ。DOSのコマンドを知っていれば、PCの修理屋さんになれるかも?
【ディレクトリの削除】
C:\> rd /s /q (削除したいディレクトリ)
【ディレクトリごとコピー】
C:\> xcopy /s (古いディレクトリ) (新しいディレクトリ)
【ディスク切り替え】
C:\> D:
【名前変更】
C:\> ren (古い名前) (新しい名前)
【ファイルコピー】
C:\> copy (古いファイル) (新しいファイル)
【現在のディレクトリ移動】
C:\> cd (ディレクトリパス)
MS-DOSの知識は決して無駄ではない。ウィンドウズが故障して、壊れていないファイルを取り出すときに、DOSのコマンドの知識が役立つ。DOSのコマンドを知っていれば、PCの修理屋さんになれるかも?
【ディレクトリの削除】
C:\> rd /s /q (削除したいディレクトリ)
【ディレクトリごとコピー】
C:\> xcopy /s (古いディレクトリ) (新しいディレクトリ)
【ディスク切り替え】
C:\> D:
【名前変更】
C:\> ren (古い名前) (新しい名前)
【ファイルコピー】
C:\> copy (古いファイル) (新しいファイル)
【現在のディレクトリ移動】
C:\> cd (ディレクトリパス)
149片山博文MZ ◆T6xkBnTXz7B0
2017/04/22(土) 19:25:44.07ID:rLCodfG7 【MS-DOS基礎知識】
あるコマンドの使い方がわからないときはコマンド名に/?をつけて実行しろ。
コマンドの名前自体がわからないときはHELPしろ。
ワイルドカード文字(*と?)を使えば、複数のファイルをいっぺんに処理できるかも。
ファイル名の一部を入力して、Tabキーを押せば、入力補完してくれるかも?
MS-DOSのファイルシステムFATは形を変えつつも現在でも広く使われている。
MS-DOSは起動が早いよね。
あるコマンドの使い方がわからないときはコマンド名に/?をつけて実行しろ。
コマンドの名前自体がわからないときはHELPしろ。
ワイルドカード文字(*と?)を使えば、複数のファイルをいっぺんに処理できるかも。
ファイル名の一部を入力して、Tabキーを押せば、入力補完してくれるかも?
MS-DOSのファイルシステムFATは形を変えつつも現在でも広く使われている。
MS-DOSは起動が早いよね。
150片山博文MZ ◆T6xkBnTXz7B0
2017/06/07(水) 18:13:04.73ID:tHau9+Vv WindowsとWin32は商標登録されている。
151片山博文MZ ◆T6xkBnTXz7B0
2017/06/07(水) 18:17:05.91ID:tHau9+Vv Microsoft、 MS、MS-DOSも商標登録されている。Win32のことをWin32APIと書いたり、MSをM$と書いたりするのも商標を避けるためだ。
152片山博文MZ ◆T6xkBnTXz7B0
2017/06/07(水) 18:17:48.97ID:tHau9+Vv あげ
153片山博文MZ ◆T6xkBnTXz7B0
2017/06/07(水) 18:32:24.94ID:tHau9+Vv つまり、競争相手はWindowsと書くのは商標に抵触する恐れがある。競争相手は商標を使えない。
「Windows 10」ではなく、スペースをつめて「Windows10」または「Win10」と書かないといけない。
これらはビジネスマナーに関わることだ。
「Windows 10」ではなく、スペースをつめて「Windows10」または「Win10」と書かないといけない。
これらはビジネスマナーに関わることだ。
154デフォルトの名無しさん
2017/06/07(水) 22:46:54.37ID:izePe9Zb >>150以下
ほぅほぅ
ちょっとこの質問は この板、このスレの本筋からは反れるだろうけど気になったんで聞いてみるが
逆に言うと
コレならオッケーと言う部分を敢えて「遊び」として設けてるって事?
素人感覚じゃ考えうる全パターン登録しちゃえばいいじゃん?になるけど
どうもそこまでガッツリでも無さげにも見える
スペース詰めて書けばいいよ=それは登録して無いからご自由に とか
(第三者が金もかからんので勝手に使ってくれる でも明らかにウチの名前よね→内容が賛否関わらず 宣伝ありがとう みたいなん前提?)
もしくはそこまでガッツリは他の要因で登録出来ないだけ?
ほぅほぅ
ちょっとこの質問は この板、このスレの本筋からは反れるだろうけど気になったんで聞いてみるが
逆に言うと
コレならオッケーと言う部分を敢えて「遊び」として設けてるって事?
素人感覚じゃ考えうる全パターン登録しちゃえばいいじゃん?になるけど
どうもそこまでガッツリでも無さげにも見える
スペース詰めて書けばいいよ=それは登録して無いからご自由に とか
(第三者が金もかからんので勝手に使ってくれる でも明らかにウチの名前よね→内容が賛否関わらず 宣伝ありがとう みたいなん前提?)
もしくはそこまでガッツリは他の要因で登録出来ないだけ?
155片山博文MZ ◆T6xkBnTXz7B0
2017/07/02(日) 00:52:24.05ID:zEgkUzwo コンピューターの進化により、マルチコア環境が当たり前になった。これは複数のCPUが同時に動くような効果がある。
そこで、時間のかかる重たい処理では、並列処理を前提にしたコードを書くとパフォーマンスの向上が望まれる。
普通のありふれた環境で、並列処理を行うには、マルチスレッドやOpenMPを使うのが一般的だ。
そこで、時間のかかる重たい処理では、並列処理を前提にしたコードを書くとパフォーマンスの向上が望まれる。
普通のありふれた環境で、並列処理を行うには、マルチスレッドやOpenMPを使うのが一般的だ。
156片山博文MZ ◆T6xkBnTXz7B0
2017/07/19(水) 23:12:27.01ID:MaD+cEa1 プログラマーたるもの、普通に技術文章を書くときでも、大文字小文字、全角半角の区別、機種依存文字の不使用に気をつけて書きなさい。
アメリカでは技術文書の書き方の手本がきちんと定義されている。
アメリカでは技術文書の書き方の手本がきちんと定義されている。
157片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 18:32:15.32ID:uTywTMsC LoadStringとTrackPopupMenuにはバグがある。
158片山博文MZ ◆T6xkBnTXz7B0
2017/08/23(水) 20:31:18.07ID:8VCPyRKy clang + MinGWで作ったexeはWin95でも動作可能かも?
159片山博文MZ ◆T6xkBnTXz7B0
2017/09/13(水) 17:35:20.37ID:L3vY8TY2 BlueToothにBlueBorneという脆弱性が発見されたらしい。対策ができていない機器ではBlueToothを有効にしてはならない。ネットワーク経由で狙われるぞ。
160片山博文MZ ◆T6xkBnTXz7B0
2017/09/28(木) 23:09:19.34ID:Msp1dHAD ソフトウェアを部品(モジュール)に分けて考えることは非常に重要だ。ソフトウェアは部品の
組み合わせで作成できる。大きな問題や課題を解決しやすい小さなタスクに分ければ、問題解決につながる。
組み合わせで作成できる。大きな問題や課題を解決しやすい小さなタスクに分ければ、問題解決につながる。
161片山博文MZ ◆T6xkBnTXz7B0
2017/10/12(木) 19:21:19.84ID:loBt1/dE Maxima(マキシマ)という無料の数式処理ソフトを使えば、パソコンで微積分を計算したり、方程式を解いたりすることができる。お試しあれ。
162片山博文MZ ◆T6xkBnTXz7B0
2017/10/23(月) 00:04:02.00ID:aoVPN+Cq 悪ぶってもモテない。ちょいワルオヤジがモテる、は嘘八百のデタラメ。
163片山博文MZ ◆T6xkBnTXz7B0
2017/11/23(木) 15:22:46.46ID:uCvKyUJ1 超デカいプロジェクトでスレッド無制限の「make -j」を実行するとOSが死ぬ。
164片山博文MZ ◆T6xkBnTXz7B0
2017/11/27(月) 13:11:21.47ID:5ZEOZsWh 木構造やリスト構造などを画像にしたい場合は、graphvizというツールを使うと自動で出来て簡単。
165片山博文MZ ◆T6xkBnTXz7B0
2017/12/05(火) 15:56:03.38ID:KBxdaLdg 教典によると、Win32APIにはsExがあるらしい。
166片山博文MZ ◆T6xkBnTXz7B0
2017/12/15(金) 18:50:05.01ID:7BomHBmE OSのユーザー名にマルチバイト文字を使うやつは落とされる。
167片山博文MZ ◆T6xkBnTXz7B0
2017/12/24(日) 20:48:09.46ID:gjaYlpPe GetVersionExとGetSystemInfoはウソをつく。
168片山博文MZ ◆T6xkBnTXz7B0
2017/12/27(水) 21:05:39.21ID:b9N+03Hh ウィンドウが最大化または最小化されているときは、ウィンドウの位置とサイズを記録しない方がいい。
最大化されたウィンドウは移動操作が難しい。また、最小化されたときは論理的な位置とサイズがとんでもない値になるから。
さもなくば、最小化された後に閉じると不具合が発生するかもしれない。
最大化されたウィンドウは移動操作が難しい。また、最小化されたときは論理的な位置とサイズがとんでもない値になるから。
さもなくば、最小化された後に閉じると不具合が発生するかもしれない。
169片山博文MZ ◆T6xkBnTXz7B0
2017/12/27(水) 21:07:10.83ID:b9N+03Hh ちなみに最大化はIsZoomed関数で、最小化はIsIconic関数で確認できる。
170片山博文MZ ◆T6xkBnTXz7B0
2018/03/24(土) 00:27:57.31ID:7JlSRs// CMakeでマニフェストの埋め込みに困った場合は、マニフェストへの参照をリソースから削って、ターゲットにマニフェストファイルをソースとして記載すればいい。
171片山博文MZ ◆T6xkBnTXz7B0
2018/04/19(木) 20:57:34.12ID:xQS3AVcl >>170 訂正。マニフェストが取り込まれるのはMSVCのみらしい。すみません。
https://cmake.org/cmake/help/v3.4/release/3.4.html#other
CMake learned to honor *.manifest source files with MSVC tools. Manifest files named as sources of .exe and .dll targets will be merged with linker-generated manifests and embedded in the binary.
https://cmake.org/cmake/help/v3.4/release/3.4.html#other
CMake learned to honor *.manifest source files with MSVC tools. Manifest files named as sources of .exe and .dll targets will be merged with linker-generated manifests and embedded in the binary.
172デフォルトの名無しさん
2018/05/23(水) 20:56:59.05ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
ZQSM6
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
ZQSM6
173デフォルトの名無しさん
2018/07/05(木) 00:56:45.23ID:RfoszcD2 USW
174さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/08/16(木) 18:17:39.58ID:x8SR5C2S ソフトウェアのダウンロードページに、よく、「ダウンロード」という不正な広告が出ることがある。
不正な広告はよくウイルスやアドウェアをダウンロードさせるので、注意深く正しいダウンロードリンクを見分けないといけない。
ちなみにグーグルの広告にはコーナーにバッテンとアイコンがついている。
不正な広告はよくウイルスやアドウェアをダウンロードさせるので、注意深く正しいダウンロードリンクを見分けないといけない。
ちなみにグーグルの広告にはコーナーにバッテンとアイコンがついている。
175さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/08/23(木) 21:55:14.28ID:Z2Fii0dD 【スマホアプリ開発の手引き】
1.まず、スマホアプリ開発用の入門書を買う。
2.スマホアプリの開発環境を整える。
3.プログラム言語を理解する。
4.APIとSDKを理解する。
5.何かアプリを作る。
6.デバッグと改良を繰り返す。
7.販売計画を立てる。
8.アプリストアに自分のアプリを登録する。
9.アプリのホームページを作って人気を集める(Web開発が必要)。
10.お金が入って来る。おしまい。
1.まず、スマホアプリ開発用の入門書を買う。
2.スマホアプリの開発環境を整える。
3.プログラム言語を理解する。
4.APIとSDKを理解する。
5.何かアプリを作る。
6.デバッグと改良を繰り返す。
7.販売計画を立てる。
8.アプリストアに自分のアプリを登録する。
9.アプリのホームページを作って人気を集める(Web開発が必要)。
10.お金が入って来る。おしまい。
176さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/10/22(月) 22:26:09.54ID:Bb4f3r+9 【分割統治】
解決が困難な大きな問題をより小さな複数の問題にほどよく分割すると、問題分析や並列処理がはかどるかも知れない。
解決が困難な大きな問題をより小さな複数の問題にほどよく分割すると、問題分析や並列処理がはかどるかも知れない。
177さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/03(土) 20:28:26.21ID:Z2+VfrEc 数年前のPCの動作が遅い場合は、近所のパソコン工房でSSDにデータ移行すると吉。
178さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/19(月) 00:56:19.49ID:4H6R9aF+ ツイッター眺めるひまありゃ、アプリで勉強、はかどるはかどる。
179さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/01/21(月) 00:23:51.21ID:q0qoUl6N 浮動小数点を使わない正確な巨大整数の四則演算を行うのは、少し知能と技能が要る。
計算速度のためと、ハッ●ング対策のために、多倍長演算は限られた人しかできないようになりつつある。
計算速度のためと、ハッ●ング対策のために、多倍長演算は限られた人しかできないようになりつつある。
180さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/14(木) 00:30:35.72ID:mMN4gdre グラフ描くのにgnuplotはもう古い。
データサイエンティストならPythonでしょ。
データサイエンティストならPythonでしょ。
181さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/04/13(土) 22:05:53.79ID:hpdTrIVt gcc/g++をお使いの人は、EXE/DLLにstripをほどこすとファイルサイズが
驚くほど小さくなるぞ。試してみよう。
驚くほど小さくなるぞ。試してみよう。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】長期金利上昇、一時1.980%に [蚤の市★]
- 日中関係改善は「下手をすると10年かかる」 トランプを全面信頼できない高市官邸の苦悩★2 [ぐれ★]
- 町山智浩「日本のパンダ経済効果は308億円」…「…いらない」と言ってる人達は、パンダで暮らす人々の損害補填してくれるのか…と問う★3 [少考さん★]
- 【野球】WBC、録画放送含め地上波中継なし (ネットフリックス) [少考さん★]
- 特攻機と同じ名称「桜花中」、福岡・大牟田市の新設中学校名に異論 市民団体が再考申し入れ ★3 [少考さん★]
- aespa 紅白出場の予定に変更なし 中国人メンバーの過去行動が物議 [ひかり★]
- 「ヘブン見た」「即ヒメ見た」とお伝えすると良い事があるお🏡
- WBC、録画放送含め地上波中継なし決定⚾ [256556981]
- 息子👈はずれ、娘👈あたり とゆう価値観、ガチで広まり始めるwwwwwwwwwwwwwwwwww [329329848]
- 【高市緊急】 高市総理。 夕方5時20分から記者会見 🎤 [485983549]
- ワンピースがまだ拾わなアカン要素wwwwwwwwwwwwwwwwww
- 大きなクリの木下
