やっぱりこれです
while(*src++ = *dst++) ;
・ポインタの型によってインクリメントの適量を判断して加算してくれる点
・行末の ;
・終了判定
無駄も過剰もなくって感じで好きです
前スレ
http://pc12.2ch.net/test/read.cgi/tech/1037458703/
探検
今までに見たソースコードで一番感動したのは deux
■ このスレッドは過去ログ倉庫に格納されています
2010/01/12(火) 23:23:19
2014/01/13(月) 22:40:47.87
10年後になると、「notだろうがxorだろうがandだろうが、たいした差は無いな」
と思うよ
と思うよ
2014/01/13(月) 22:43:52.15
2014/01/13(月) 22:44:46.46
そういう意味じゃないだろ。くだらないトリックではなく、本来の意味に沿ってプログラムを書かないと、
メンテナンス不能につながっていく、ということを>>79はいいたいんだと思う。
メンテナンス不能につながっていく、ということを>>79はいいたいんだと思う。
2014/01/13(月) 22:54:55.96
スレッドセーフなのか気になる
2014/01/18(土) 13:02:24.39
>>79
xorで実現する奴:booleanの概念を持たない老害C(≠++)プログラマー
xorで実現する奴:booleanの概念を持たない老害C(≠++)プログラマー
85デフォルトの名無しさん
2014/01/24(金) 09:45:25.41 要件通りのコードを書くのが正解。その手のトリックはコンパイラを作る人が必要なテクニック。
2014/01/24(金) 10:17:20.71
すれ違い
2014/01/26(日) 09:35:23.45
>>84
if(hoge == TRUE)…というコード書いて問題になったことがあるんだな。正直に言ってみろ。
if(hoge == TRUE)…というコード書いて問題になったことがあるんだな。正直に言ってみろ。
88デフォルトの名無しさん
2014/02/05(水) 14:17:47.80 #include <stdio.h>
int main(int argc, char* argv[])
{
int x = 10000000;
int y = 1;
x = x ^ y;
y = x ^ y;
x = x ^ y;
printf("x=%d, y=%d\n", x, y);
return 0;
}
Output:
x=1, y=10000000
int main(int argc, char* argv[])
{
int x = 10000000;
int y = 1;
x = x ^ y;
y = x ^ y;
x = x ^ y;
printf("x=%d, y=%d\n", x, y);
return 0;
}
Output:
x=1, y=10000000
2014/02/05(水) 14:47:34.79
4bitあれば証明には十分
2014/03/31(月) 20:58:04.99ID:jZUG5SzL
パズル的なコードで感動する人が多いのね。
個人的に目からウロコだったのはsuckless.orgのMakefile全般。
http://git.suckless.org/st/tree/Makefile?id=3c546ae73924804ddc6d29dc3ab2f12a93287009
GNUのツールは猫も杓子もautoconfで人間が読めないMakefileを吐き出すものだから、
Makefileは人間の書くもんじゃねえとかscons他モダーンなビルドシステムの方がいいとか思ってたんだが、
↑のを見てからむしろ他のビルドシステムが面倒に思えるようになってきた。
個人的に目からウロコだったのはsuckless.orgのMakefile全般。
http://git.suckless.org/st/tree/Makefile?id=3c546ae73924804ddc6d29dc3ab2f12a93287009
GNUのツールは猫も杓子もautoconfで人間が読めないMakefileを吐き出すものだから、
Makefileは人間の書くもんじゃねえとかscons他モダーンなビルドシステムの方がいいとか思ってたんだが、
↑のを見てからむしろ他のビルドシステムが面倒に思えるようになってきた。
91デフォルトの名無しさん
2015/02/05(木) 18:46:10.70ID:Wisgh0P5 同意
92デフォルトの名無しさん
2015/02/05(木) 23:16:56.03ID:5/RSARoZ #define ZERO 1
GNUでよく見かける。
GNUでよく見かける。
2015/02/05(木) 23:40:37.49ID:7ArXIVK3
ワロタ
でも #ifdef で分けるのに使うマクロは 1 なんだよな
でも #ifdef で分けるのに使うマクロは 1 なんだよな
2015/02/12(木) 16:15:36.77ID:1WRWm2Rj
無名高階関数があればifやswitchなしで分岐作れるんだって感動した
Object subclass: #True.
! True class methodsFor: 'testing' !
ifTrue: aTrueBlock
ifFalse: aFalseBlock
^ aTrueBlock value.
!!
Object subclass: #False
! False class methodsFor: 'testing' !
ifTrue: aTrueBlock
ifFalse: aFalseBlock
^ aFalseBlock.
!!
| boolean |
boolean := True.
boolean := False.
boolean ifTrue: [ 1 ] ifFalse: [ 2 ].
Object subclass: #True.
! True class methodsFor: 'testing' !
ifTrue: aTrueBlock
ifFalse: aFalseBlock
^ aTrueBlock value.
!!
Object subclass: #False
! False class methodsFor: 'testing' !
ifTrue: aTrueBlock
ifFalse: aFalseBlock
^ aFalseBlock.
!!
| boolean |
boolean := True.
boolean := False.
boolean ifTrue: [ 1 ] ifFalse: [ 2 ].
2015/02/12(木) 16:18:17.17ID:1WRWm2Rj
valueが抜けてた。
Object subclass: #True.
! True class methodsFor: 'testing' !
ifTrue: aTrueBlock
ifFalse: aFalseBlock
^ aTrueBlock value.
!!
Object subclass: #False
! False class methodsFor: 'testing' !
ifTrue: aTrueBlock
ifFalse: aFalseBlock
^ aFalseBlock value.
!!
| boolean |
boolean := True.
boolean := False.
boolean ifTrue: [ 1 ] ifFalse: [ 2 ].
Object subclass: #True.
! True class methodsFor: 'testing' !
ifTrue: aTrueBlock
ifFalse: aFalseBlock
^ aTrueBlock value.
!!
Object subclass: #False
! False class methodsFor: 'testing' !
ifTrue: aTrueBlock
ifFalse: aFalseBlock
^ aFalseBlock value.
!!
| boolean |
boolean := True.
boolean := False.
boolean ifTrue: [ 1 ] ifFalse: [ 2 ].
2015/02/17(火) 17:11:11.79ID:sT/CiA2T
Cでも三項演算子で分岐できるやん
だが無名のブロック作れると喜んで複雑化するのは破滅の入り口
そこであえて踏みとどまって名前つきブロック/関数にすべき
だが無名のブロック作れると喜んで複雑化するのは破滅の入り口
そこであえて踏みとどまって名前つきブロック/関数にすべき
2015/02/18(水) 02:37:00.51ID:QTgMdBtY
>>96
わかってねーなー。
分岐や反復に専用構文が必要なくて、
言語機能が簡素になんのがいいんじゃん。
お陰で分岐だけじゃなく、C#なんかで使われる次世代の構文だって
言語機能の拡張なしで使えるんだぞ。
"以下usingを使ったexample.txtにvalueと書き込むC#の処理と同等の処理。"
'/tmp/example.txt' asFile withWriteStream:
[ :aStream |
aStream nextPutAll: 'value'.
].
わかってねーなー。
分岐や反復に専用構文が必要なくて、
言語機能が簡素になんのがいいんじゃん。
お陰で分岐だけじゃなく、C#なんかで使われる次世代の構文だって
言語機能の拡張なしで使えるんだぞ。
"以下usingを使ったexample.txtにvalueと書き込むC#の処理と同等の処理。"
'/tmp/example.txt' asFile withWriteStream:
[ :aStream |
aStream nextPutAll: 'value'.
].
2015/02/28(土) 18:45:17.20ID:LrNX9W7z
三項演算子はリテラル以外禁止だと前の会社で言われた
99デフォルトの名無しさん
2015/02/28(土) 18:54:09.47ID:st/D/r/c100デフォルトの名無しさん
2015/03/01(日) 00:41:40.88ID:KvRPiAMx awkだけど、最近ここで見た回答がすごいと思った。
2つのテーブルデータを合体させるとき、連想配列を使えば、
要素が同じか否か、という条件分岐を使わなくてもいいんだね。
たった1行で、しかもLinuxのjoinコマンドよりも融通が効くところがなおさらイイ。
How to merge two files using AWK?
http://stackoverflow.com/questions/5467690/how-to-merge-two-files-using-awk
$ awk 'FNR==NR{a[$1]=$2 FS $3;next}{ print $0, a[$1]}' file2 file1
2つのテーブルデータを合体させるとき、連想配列を使えば、
要素が同じか否か、という条件分岐を使わなくてもいいんだね。
たった1行で、しかもLinuxのjoinコマンドよりも融通が効くところがなおさらイイ。
How to merge two files using AWK?
http://stackoverflow.com/questions/5467690/how-to-merge-two-files-using-awk
$ awk 'FNR==NR{a[$1]=$2 FS $3;next}{ print $0, a[$1]}' file2 file1
101デフォルトの名無しさん
2015/03/03(火) 23:36:31.83ID:StzQ6W23102デフォルトの名無しさん
2015/03/04(水) 07:46:28.47ID:UWB+qgaN 普通
printf("%s\n", a ? "成功" : "失敗");
あるいは
printf("%s\n", ["失敗", "成功"][a]);
って書けると良いね
printf("%s\n", a ? "成功" : "失敗");
あるいは
printf("%s\n", ["失敗", "成功"][a]);
って書けると良いね
103デフォルトの名無しさん
2015/03/14(土) 15:46:47.22ID:ZPmTfQbC104デフォルトの名無しさん
2015/03/19(木) 23:58:26.08ID:R5h2QGKb // この部分はサワルナ!
105デフォルトの名無しさん
2015/06/07(日) 04:42:56.99ID:+3hya87E Dan plays Deus Ex 1 - First Time Playing
http://www.twitch.tv/dansgaming
http://www.twitch.tv/dansgaming
106デフォルトの名無しさん
2016/08/07(日) 17:05:15.45ID:fH23byCM Erlang万歳
107デフォルトの名無しさん
2016/08/07(日) 23:40:36.63ID:8kEt+rxK Elixirだろ
108デフォルトの名無しさん
2016/08/08(月) 09:23:39.33ID:bsQ3M/kD c#6.0だと
string a="";
if(hoge !=null && hoge.hage !=null) a=hoge.hage;
↓
var a =hoge?.hage??"":
string a="";
if(hoge !=null && hoge.hage !=null) a=hoge.hage;
↓
var a =hoge?.hage??"":
109デフォルトの名無しさん
2016/08/14(日) 09:28:18.90ID:Dug1tlBQ IOCCC(国際難読化 C コードコンテスト)のプログラムはすごい
1987年の作品だけど
main() { printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}
こういうプログラムがたくさんある(これは unix と出力するプログラム)
1987年の作品だけど
main() { printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}
こういうプログラムがたくさんある(これは unix と出力するプログラム)
110デフォルトの名無しさん
2017/03/07(火) 16:22:40.06ID:DO9cEIcz プログラムコードの柔軟性を持った言語って無いのかな
ifの書式で言うと、
if exp then block elseif block else block end
if (exp) { block } else if (exp) { block } else { block }
が俺の知る言語での主な書式なんだが、
expへの括弧の有無、blockを囲むのがthen endか{}か、elseifかelse ifか、言語毎の方言に毎回躓いてだるい
こう言うのって基本書いてる事は同じだから、コード走らせるときの前処理とかで吸収できるよな?
20年ほど前に比べると、プログラミングについてのノウハウみたいなものがこなれてきて使いやすくはなってきたと思うけど
もう一皮くらい剥けてプログラミングし易くなってくれたらいいんだけどな
ifの書式で言うと、
if exp then block elseif block else block end
if (exp) { block } else if (exp) { block } else { block }
が俺の知る言語での主な書式なんだが、
expへの括弧の有無、blockを囲むのがthen endか{}か、elseifかelse ifか、言語毎の方言に毎回躓いてだるい
こう言うのって基本書いてる事は同じだから、コード走らせるときの前処理とかで吸収できるよな?
20年ほど前に比べると、プログラミングについてのノウハウみたいなものがこなれてきて使いやすくはなってきたと思うけど
もう一皮くらい剥けてプログラミングし易くなってくれたらいいんだけどな
111デフォルトの名無しさん
2017/03/07(火) 18:05:00.53ID:sN5zB8qN112デフォルトの名無しさん
2017/03/08(水) 13:50:57.20ID:jMX+hATM >>110
julia
julia
113デフォルトの名無しさん
2017/03/09(木) 09:39:51.17ID:hS5pjfRn >>112
julia は end が要るだろ。
julia は end が要るだろ。
114デフォルトの名無しさん
2017/03/09(木) 19:53:34.25ID:LKSg58e8 macroがあるよ
115デフォルトの名無しさん
2017/03/10(金) 03:00:53.00ID:eBvZbI3A 全部英単語で構成されるのと適度に記号が混ざるのとどっちが見やすいんだろう
個人的には後者だけど
個人的には後者だけど
116デフォルトの名無しさん
2017/03/10(金) 09:12:49.72ID:OTPF9/DX 全部日本語でよろ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★12 [蚤の市★]
- 女性天皇「賛成」69%、将来の皇位継承「不安」68%…読売世論調査 [蚤の市★]
- 不倫疑惑の永野芽郁さん、CM削除ドミノの違約金“やはり発生は免れない”可能性 約10億円になる見込み、本人は全額支払う覚悟 [牛丼★]
- 旧姓使用拡大に連合会長が反発 「何の説明もない。選択的夫婦別氏制度導入を」 男女共同参画会議 ★2 [ぐれ★]
- 開業4ヵ月でこれは…“国民の税金”投入の『ジャングリア沖縄』で見た衝撃的な光景と、モチベーションが低い一部スタッフの現状 ★2 [ぐれ★]
- 【神戸】エレベーター「かご」なく男性医師が転落死 大手「三菱電機ビルソリューションズ」の担当者、安全装置切り放置か [ぐれ★]
- ジムでインターバルの時にウロウロ歩くやつなんなの?
- レイプはとっても気持ちがいい
- クソ嫌いなやつと狙ってる女が仲良かったらどうする?
- 【悲報】ドイツ人「なんで日本人って自炊するの?出来合の惣菜や冷食食った方が楽でコスパいいやん。そんなんだから低生産性なんだよ [786648259]
- 近所の騒音おじさんが俺にだけ優しくしてくる
- 【動画】まんさん、アラジンのジーニーみたいな男にボコボコにされる🧞‍♂ [632966346]
