タグ

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

  • 関連タグはありません

タグの絞り込みを解除

ProgrammingとC++とCに関するagwのブックマーク (47)

  • ビット演算やシフト演算の演算順位は勘違いしやすい

    agw
    agw 2011/09/22
    「実際のC言語では、<<,>> が+,-,より優先順位が下だったり、&,|,^ が >,>=,<,<=,==,!=より下だったり、さらに&,|,^間でも優先順位がちがったり、と、気をつけないと かなり思い違いをし兼ねないしろものです。」
  • 関数オブジェクト - Wikipedia

    この記事には複数の問題があります。 改善やノートページでの議論にご協力ください。 出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。(2024年4月) 脚注による出典や参考文献の参照が不十分です。脚注を追加してください。(2024年4月) 独自研究が含まれているおそれがあります。(2024年4月) 出典検索?: "関数オブジェクト" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL 関数オブジェクト(かんすうオブジェクト、英: function object)は、プログラミング言語において、関数(サブルーチンまたはプロシージャ)を、オブジェクトとしたものである。手続きオブジェクトとも言う(プロシージャ=手続き)[要出典]。なお、ここでのオブジェクトの語は、いわゆるオブジェクト

  • Function object - Wikipedia

    This article is about the computer programming concept of function objects. For functors in mathematics, see Functor. For the related concept in functional programming, see Functor (functional programming). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. Find source

  • 三項演算子の正しい書き方

    C・C++JavaPerl などのプログラミング言語では、条件演算子として三項演算子?:が用意されている。条件演算子の書き方として、以下のような説明がされることが多い。 condition ? true-expression : false-expression この説明は、以下のプログラムと同じ程度、間違っている。 #include <stdio.h> main( ){printf ("hel" "lo, world\n" );} 条件演算子は、正しくは以下のように書く。 condition ? true-expression : false-expression 使い方の例を示す。 compare = obj1 == null ? obj2 == null ? 0 : -1 : obj2 == null ? 1 : obj1.toString().compareTo(obj2.to

  • C++がPythonより重い… @ 7bit

    GUI grepツールの調査過程は一応一段落し、当初のもくろみ通り製作に入ろうとしています。 今は特に苦もなく使えそうなPython, C++, C#のどれを用いるか検討中。 大量のファイルへのアクセスと正規表現のマッチは割と重い処理になりそうなので、実際にコードを書いて比較しています。 まず生grep。find | xargs grep '...'。直接Cで書かれていることを考えると、最速の基準として考えて良さそうです。日英対訳文対応付けデータ [1]をデータセットとして実験していますが、1.1秒くらいで2000ファイル近くのスキャンが終わる。 次に、書きやすそうなところでPython (re)でやってみました。所詮LLだし、結果には全然期待していません。 ところがところが、何故かこれが滅茶苦茶速い。 特に最適化したコードの書き方でもないんですが、1.6秒くらいで終わる。殆どC同等の速さ

  • #if 0ハックすごくね?すげーってw - Seasons.NET

    #If 0ってC,C++では、#endifまで問答無用でコメントにしますが、 これを使ったハックがすごく便利。 元ネタ http://gpwiki.org/index.php/SDL:Tutorial:Using_SDL_net #if 0 #!/bin/sh gcc -o a a.c exit #endif int main( void ) { printf( "Hello\n"); return 1; } これを保存して、実行属性をつけてから(chmod 755とか) ターミナルで、 # ./a.c と打ち込むと、 aという実行ファイルが生成される。 んで、./aと打ち込むと Helloと表示される。 今までは、Makefileか直接、gcc -o a a.cとかやっていた作業が、 ソースコード+Makefileの代わりになるわけ。 なぜこんな事ができるかってーと、 shのシェルスクリ

    #if 0ハックすごくね?すげーってw - Seasons.NET
  • 64ビットになると何が変わる?――64ビットプログラミングのデータモデル

    64ビットになると何が変わる?――64ビットプログラミングのデータモデル:64ビットコンピューティング最前線(1/2 ページ) システムが64ビットになるとプログラム的には何が変わるのか。3つの基的な64ビットプログラミングデータモデルを取り上げながら、理解を深めていこう。 64ビットプログラミングで何が変わる? システムが64ビットになるとプログラム的には何が変わるのでしょうか。 まず、大きな変更点として、ポインタの幅(サイズ)が64ビットになります。このことで、より幅広いアドレスをカバーできるようになります。そもそも、ポインタのサイズが32ビットのままなら64ビットに拡張される意味がありませんし、これは当然といえば当然のことかもしれません。 通常、ポインタはポインタとしてしか使用されることはありませんし、intとポインタとで代入を行うといったトリッキーなことをしていないかぎり、そのま

    64ビットになると何が変わる?――64ビットプログラミングのデータモデル
  • 64ビットへの移行で懸念される問題――基礎編

    64ビットへの移行は、ビット数を増やすことによって得られるとても大きな恩恵があるが、問題が無いわけでもない。具体的な問題について触れる前に、問題の質はどこなのかを短時間で理解しよう。 32ビットから64ビットへの移行 32ビットから64ビットへの移行は、16ビットから32ビットへのそれに比べて、それほど大きな変化はありません。 その昔、16ビットから32ビットに移行した際、メモリをセグメントに分けることによって問題を解決していた時期もありましたが、この方法ではプログラムが煩雑になってしまい、パフォーマンス面でも不利な状況となってしまうことがよくありました。この反省から、32ビットから64ビットへの移行は、単純にアドレス空間を64ビットの幅にすることで解決しようという考えが、シンプルかつもっとも現実的であると判断されたのではないかと想像できます。 とはいえ、64ビットに移行することで、使用

    64ビットへの移行で懸念される問題――基礎編
  • 64ビットプログラミングのポイント

    64ビット環境へ移行する際の注意点 ここでは、従来の32ビット環境に慣れてしまったプログラマがしばしば犯してしまうミスを交えつつ、32ビット環境から64ビット環境へ移行する際に注意すべき代表的なC言語のプログラミング例を紹介します。 もちろん、32ビット環境でプログラムを書いたことのないプログラマにも有用な情報です。 ポインタをint型やlong型変数に代入しない ポインタをint型やlong型変数に代入し、それを操作してはいけません。 アセンブラまたはインラインアセンブラを使った経験のあるプログラマは、C言語のポインタを整数型変数に代入してアドレスの計算を行うようなコードを書くことがあります。例えば、List1のようなコードです。 long a[N]; long *p; long addr; ... addr = (long) a; addr += sizeof(long) * x; /

    64ビットプログラミングのポイント
  • GCC, the GNU Compiler Collection

    GCC, the GNU Compiler Collection The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, Go, D, Modula-2, and COBOL as well as libraries for these languages (libstdc++,...). GCC was originally written as the compiler for the GNU operating system. The GNU system was developed to be 100% free software, free in the sense that it respects the user's freedom. We strive to

  • やっぱりポインタのポインタは難しいようです — ありえるえりあ

    アリエルでは、プログラマとして応募してきた人に出すための設問を用意しています。現在、C版とJava版があります。 C版の作成は古くて、正直、もう廃棄してもいいかなと思わないのでもないですが、Javaは未経験でC/C++の経験はあります、という人はいますし、そういう人はいわゆるなんちゃってJavaプログラマよりは相対的に能力が高い傾向にあるのでC版も残しています。 最近、立て続けに、他は完璧な回答なのにポインタのポインタが絡む設問だけは間違い、という回答を受け取りました。結果引数(引数で値を返す関数。Cでは必要悪)で、返す値がポインタ値なので、引数の型をポインタのポインタにする必要がある設問です。他の設問で、ポインタを理解しているように見えました。しかし、ポインタのポインタが分からないということは、ポインタをきちんと分かっていないと判断せざるをえません。 昔なら一発でダメ出ししていたのですが

  • Linus「C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが 簡単に生産されるようになってる」

    /15 [4] (21:54) 原文: http://lwn.net/Articles/249460/ From: xxx To: xxx Subject: Re: [RFC] builin-mailinfo.c をマシな文字列ライブラリを使うようにすること Date: Thu, 6 Sep 2007 18:50:28 +0100 (BST) Message-ID: <alpine.LFD.0.999.0709061839510.5626@evo.linux-foundation.org> On Wed, 5 Sep 2007, Dmitry Kakurin wrote: > > Git のソースコードを最初に見たとき、ヘンだと思ったこと: > 1. C++ じゃなくてただの C を使ってる。理由は謎。移植性がどうとか言わないで、 > そんなのウソに決まってるから。 *あんた* のほうこそ

  • Charming Python: Functional programming in Python, Part 3

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Charming Python: Functional programming in Python, Part 3
  • Alchemy - Adobe Labs

    Project "Alchemy" is now the Flash C++ Compiler (FlasCC) FlasCC lets you bring existing C/C++ code to the web, with high performance, across browsers. Leverage the entire Flash Runtime API from C++, deliver full GPU accelerated graphics, and reach over a billion people with no install using C/C++. Learn more and start using FlasCC Adobe Labs: Home | Technologies | Download | Community | RSS Feeds

  • 2007年に人気伸びたのはPython、Ruby/Perlは微減 - builder by ZDNet Japan

    さあ、その想いをカタチにしよう。 Google Cloud が企業の未来に向けた生産性 向上とコラボレーション実現のヒントを解説 単純なインフラ製品の販売ではない DX、コンテナプラットフォームの実証など 自社の取り組みで得られた知見を顧客に提案 ビジネスのためのデータ基盤構築 DX時代の企業成長はデータ活用が鍵 新たな展開を後押しするSQL Server活用 ITインフラ運用からの解放 HCI+JP1による統合運用による負荷激減で 次世代IT部門への役割変革へ一歩前進 EDRトップランナー対談:後編 セキュリティ戦略を転換せざる得ない背景と EDRのような手法が必要な理由に迫る オープンソース活用はあたりまえ! そんな今だからこそ改めて考える 企業ITにおけるOSS活用のメリットとリスク 結果に差がつくウェビナーへの投資 デジタル営業時代における見込み顧客獲得へ ウェビナーの運用・集客・

  • #と##演算子

    文字列化演算子 マクロ関数だけで使用できる、便利な演算子が用意されています そのひとつが文字列化演算子です マクロ関数で受け取った値に対して#記号をつけることで それを文字列、すなわちダブルクォーテーションをつけた状態に置換えます (プリプロセッサディレクティブであることを忘れないでください。あくまでソース上で置き換わるだけです) #define STRING(str) #str このマクロ関数は、仮引数の値をダブルクォーテーションをつけた状態に置き換えます 次のプログラムを実行してください #include <stdio.h> #define PRINT(str) printf(#str "\n") #define STRING(str) #str int main() { PRINT(Kitty on your lap); printf("%sバイトは1キロバイト" , STRING(

  • セグメンテーション違反のとり方

  • There's more than one way to set parameters : 404 Blog Not Found

    2007年05月31日15:15 カテゴリLightweight Languages There's more than one way to set parameters ちょっとびっくり。 Life is beautiful: 「パラメーターのプロパティ渡し」でプログラムを読みやすくする、というアイデアはどうだろう そこで、ActionScriptにもJavaScriptのように自由にプロパティを追加できるObjectというクラスがあることを利用して、これらのパラメーターを一つのオブジェクトのプロパティとして渡すように変更してみた。 というのも、この名前付きパラメターというのは、Hashが組み込みで使えるスクリプト言語の場合は常識化しているので。これを他ならぬ中島さんが言うと、なんだか加藤鷹に「ねえ君、知ってる?Doggy Styleって体位があるんだけど、これっていいよ」って言われた

    There's more than one way to set parameters : 404 Blog Not Found
  • 静的ライブラリのリンク時にundefined referenceエラーが出る(gcc)

    静的ライブラリのリンク時にundefined referenceエラーが出る(gcc) 概要 gccでリンク時にundefined referenceエラーが出る場合がある。 通常はオブジェクトやライブラリの指定忘れが原因であるが、 静的ライブラリをリンクする順番に間違いがあって出る場合もある (自分でMakefileを書く場合にこのミスをすることが多い) リンクの順番には依存性があり、あるオブジェクトが静的 ライブラリ内の関数を呼び出すときには呼び出される側の ライブラリは「後で」リンクする必要がある。 例えば foo.o が静的ライブラリ libfoo.a 内の関数を使用している、つまり foo.o → libfoo.a という依存関係があるとき、 g++ -o foo libfoo.a foo.o とするとundefined referenceエラーが出る。従って g++ -o fo

    agw
    agw 2007/05/31
    静的ライブラリをリンクする順番について言及。
  • $B@EE*%i%$%V%i%j (B

    2. $B@EE*%i%$%V%i%j (B $B@EE*%i%$%V%i%j$O!"DL>o$N%*%V%8%'%/%H%U%!%$%k$NC1$J$k=89gBN$G$9!# (B $B47=,$H$7$F!"@EE*%i%$%V%i%j$O!V (B.a $B!W$H$$$&3HD%;R$r;}$A$^$9!# (B $B$3$N=89gBN$O!" (Bar (archiver) $B%W%m%0%i%`$r;HMQ$7$F:n@.$5$l$^$9!# (B $B@EE*%i%$%V%i%j$O0JA0$[$I$K$O;H$o$l$J$/$J$C$F$$$^$9$,!"$3$l$O!"6&M-%i%$%V%i%j$N$[$&$,M%$l$F$$$k$?$a$G$9 (B ( $B$"$H$G@bL@$7$^$9 (B) $B!#$=$l$G$b$^$@!"@EE*%i%$

    agw
    agw 2007/05/31
    静的ライブラリの指定は、後に指定する。