TOPy[W > TOP > Ĉ > C̕@ > CŗL̋@\
@wywm@z[y[W

@@wywm@@
@|bŗL̋@\|@@
ŏIXVF2025N12

1D\
@PythonCJavaScriptCC̏ʋKiłC++ɂ́ANXƂlAIuWFNgwƌ܂ACɂ̓IuWFNgwƂĂ̐i͂܂B̑̂\łBNX́AC̍\̂𔭓WApƂTÔƂƂł܂BIuWFNgw̃NXƓlAC̍\̂AX̃f[^A֐(\bhƂ͂܂)‚Ƃł܂B

@Ⴆ΁AX[p[ŁAi\̂pčsƂAiAށA[J[AiA̔Aݐϔ̔A݌ɐAdꉿiAdAWʒuAlƌf[^ƁA̔݌ɐCA݌ɕs̏ꍇɌx֐sales()Cd̓ŗݐϔ̔ʂllvZ֐discount()CiEilD쐬֐pricetag()ƌ֐L\̂pӂ̂ł΁A
struct good {
char *name; // i
int type; // i^Cv
char *maker; // [J[
int price; // i
int salescount_day; // ̔
int salescount_cum; // ݐϔ̔
int stock; // ݌ɐ
int purchaseprice; // dꉿi
time_t purchaseday; // d
int location; // iWʒu
float discountrate; // l
unsigned char *priceimg; // lD摜ւ̃|C^
int (*sales)(struct good *); // ݌Ƀ`FbN
float (*discount)(); // lvZ
int (*pricetag)(); // lD摜𐧍삷
};
Ƃ܂B\̓̊ef[^\̂o[ƌ܂B\̂`Ƃ́Astructɑč\̖(Lłgood)A'{''}'̊Ԃɍ\̂̃o[̒`܂Bo[ɂ͊֐邱Ƃł܂B

@܂A݌Ƀ`FbN֐ƂāAȉ̂悤func1()pӂ܂B
int func1(struct good *pg1) {
pg1->salescount_cum += pg1->salescount_day;
pg1->stock -= pg1->salescount_day;
if (pg1->stock < 10) {
printf("%s̎dꂪKvłB݌ɐF%d\n", pg1->name, pg1->stock);
return -1;
}
return 0;
}

@\goodgāAَq(i^Cv3791Ƃ܂)ɁAߘaق́u܂₩`R[gvƂiAi230~A݌ɐ100Adꉿi159~2024N521ɎdꂽƂāȀĩf[^o^ۂɂ́Aȉ̂悤ɍ\̂̎(IuWFNgwŌƂ̃CX^X̂悤Ȃ)ݒ肵܂BOgood\̂錾ĂA\good̎g1ƁA\good̔zgoods`AɁA݌Ƀ`FbN֐Lfunc1()ClvZ֐func2()ClD摜֐func3()Ƃ܂B炩߁A
int goodnum = 0; // iԍ
time_t t1;
struct tm tm1;
struct good g1;
struct good goods[30000];
ƕϐ錾ĂA
tm1.tm_year = 2024;
tm1.tm_mon = 4; // |1ɒ
tm1.tm_mday = 21;
t1 = mktime(&tm1);
@
g1.name = "܂₩`R[g";
g1.type = 3791;
g1.maker = "ߘa";
g1.price = 230;
g1.stock = 100;
g1.purchaseprice = 159;
g1.purchaseday = t1;
g1.sales = func1;
g1.discount = func2;
g1.pricetag = func3;
goods[goodnum++] = g1;
ƂāA\̂̎̂̃o[ɂ܂₩`R[g̃f[^Zbg܂B

@ł́Agood\̂̔zgoodsvf30000ƂĊmۂA30000̏ĩf[^i[ł܂BŌgoods[goodnum++] = g1Ƃ΁A\g1̑So[̒lAzvfɂ܂Ƃ߂đ܂Bgoodnum͏iԍ̃JE^ŁAŏ0ŁAio^邽тɁAgoodnum++Ƃ1‘Ă܂Bg1̃o[́Ao[nameł΁A'.'pāAg1.nameƂăANZX܂B܂A\̂̃f[^ʒuAhXlƂ|C^pg1(=&g1)gāAo[nameɃANZXƂ́A'->'pāApg1->nameƂ܂B

@g1.name = "܂₩`R[g"ƂāAg1.nameɏiݒ肳܂Ag1.nameɓ̂́A"܂₩`R[g"̐擪AhXłB{̂\̎̂ɓ킯ł͂܂({̂\̎̂̒ɓĂ܂ƂłȂ킯ł͂܂)BLfunc1()̒`́Aint func1(struct good *pm1)ƂȂĂ܂A\̓Ɋ֐ւ̎QƂꍇɂ́Ao[̐lԂ֐ւ̃|C^(̂́A֐ێ̂́AɈʒu֐̃R[h̐擪AhXł)saleŝݏA͏ȗA
int (*sales)(struct good *);
ƋLq܂B\good̃o[salesɊ֐func1()ݒ肷ꍇ́A
g1.sales = func1;
̂悤ɂāA֐ւ̃|C^ێg1.salesɑ`ŁA֐func1Zbg܂B

@\̂̃o[ł֐Ăяoꍇ͈ȉ̂悤ɂ܂B
g1.salescount_day = 7;
printf("7”܂B\n");
g1.sales(&g1);
g1.salescount_day = 85;
printf("85”܂B\n");
g1.sales(&g1);
ʂɂ́A
7”܂B
85”܂B
܂₩`R[g̎dꂪKvłB݌ɐF8
ƕ\܂Bg1.sales(&g1)ŁA\g1̂̂łȂAg1ւ̃|C^&g1ɂȂĂ̂́A\̂̃TCY96oCg傫łBg1ւ̃|C^ł8oCgōς݂܂Bg1.salesɃZbgĂ֐func1()̖{̂ł́Aint func1(struct good *pg1)ƂĂāAgood\̂ւ̃|C^pg1ƂĂāAɁAg1̈ʒuAhXĂ܂Bg1̂ł͂ȂAg1ւ̃|C^pg1pāAg1̃o[ɃANZX邽߂ɂ́A'->'Zqp܂Bo[nameł΁Apg1->nameƂ܂B

func1()ł́Aݐϔ̔pg1->salescount_cumɁA̔pg1->salescount_dayA݌ɐpg1->stock瓖̔pg1->salescount_dayA݌ɐ10ɂȂƁAudꂪKvłvƂbZ[Wo悤ɂȂĂ܂B

@܂ALtm\̂oĂ܂A̍\̂́Atm_year(N\܂)Ctm_mon(̐l1l\܂B5Ȃ4ł)Ctm_mday(̐l\܂)Ƃo[ĂAݒ肵āA\̂ւ̃|C^mktime()֐ɓnƁAtime_t^(CYGWINł́A菄sys/_types.hƂt@Clong^defineĂ܂)̎f[^ԂĂ܂B̋@\g߂ɂ́A<time.h>includeĂB

2Dp
@HTMLȂǂŕFȂǂw肷ꍇɁAcrimsonƂFw肷ꍇARGB#dc143cƐݒ肵܂AԂ̋dcC΂̋14C‚̋3cłBFR[hAꂼ̐F̋߂AƂ悤ȏꍇɋp̂g܂Bp̂̐錾͍\̂Ɠlɍs܂A\̂Ƃ͈ႢAp̂̃o[́ASċp̂̐擪AhX烁ɔzu܂B

@p̂́Aȉ̂悤ɒ`܂B
union rgb {
int code;
unsigned char c[4];
}
^ϐcode4oCg̔zc[4]́A̓ʒuɏd˂Ĕzu܂Bϐcolor1
union rgb color1;
Ɛ錾܂Bp̂̃oւ̃ANZX\̂Ɠlɍs܂B
color1.code = 0xdc143c;
printf("rgb:%06x, r:%02x, g:%02x, b:%02x\n", color1.code, color1.c[2], color1.c[1], color1.c[0]);
color.c[2] = 0x37;
color.c[1] = 0xc2;
color.c[0] = 0x5e;
printf("rgb:%06x, r:%02x, g:%02x, b:%02x\n", color1.code, color1.c[2], color1.c[1], color1.c[0]);
ƂƁAʂɁA
rgb:dc143c, r:dc, g:14, b:3c
rgb:37c25e, r:37, g:c2, b:5e
ƕ\܂B

3DO
@CɂAPythontry`except̏Ǝ悤Ȏdg݂܂BPythontry`exceptɎĂAƂJavaScriptaddEventListner\bhɋ߂֐ƂāAsignal()֐܂BvOsCtrl-CƁAvOIɎs~܂A~ɁAsp邱Ƃł܂BCtrl-CL[oƁASIGINTO܂Asignal()֐ɂA̗Oߑ邱Ƃł܂BOɁAhandler1()֐pӂĂAsleep()֐p10bx܂悤ɂāA
signal(SIGINT, handler1);
sleep(10);
sƁAPCx݂ɂȂ܂A10bȓCtrl-CƁASIGINTOāA֐handler1()Ɉڂ܂Bhandler1()śAONʒu̎̍sɏi݂܂B

@ɁAalarm()֐ɂSIGALRMONāAw莞ԌɊmFƂsƂƂ”\łBsleep(10)Ɠl̂Ƃalarm()֐ɂĎȉɌf܂B܂A2‚̃O[oϐpӂ܂B
int tenseconds = 0;
int handler1on = 0;
tensecondśAalarm()֐ɂSIGALRMO𔭐10bo1ɂȂ܂Bhandler1ońAhandler1()s1ɂĂAhandler1()sSIGALRMOdĔĂ10b㌟otenseconds1ɂȂȂ悤ɂ܂(AA͂̒x̗OdĎł͊Â̂łBhandler1()NĂhandler1on = 1sOɁASIGALRMOhandler2()NĂ܂AȂǁAȃ^C~O2‚̗OdȂƐ[ȏ󋵂Ɋׂ邱Ƃ܂BȌds̃VXeQȂǂ̌ɂȂ邱Ƃ܂BxXATM̃f[^ĂāȀ낤Ƃ܂ɂ̏uԂɏHcxXõf[^ĂAƂsKȏdƁAguɂȂ肩˂܂)Bhandler1()Chandler2()͈ȉ̂悤ɂ܂B
void handler1() {
handler1on = 1;
printf("Ctrl-Co܂B\n");
signal(SIGINT, handler1);
handler1on = 0;
}
void handler2() {
if (handler1on) {/* handler1s͂1bL΂ */
signal(SIGALRM, handler2);
alarm(1);
}
else tenseconds = 1;
}
Lł́Ahandler1()shandler2()NĂ܂ꍇA1bSIGALRMO𔭐܂Bmain()֐ł́A
signal(SIGINT, handler1);
signal(SIGALRM, handler2);
printf("10bԋxe܂BCtrl-CŋNĂB\n");
alarm(10);
while(1) {
if (tenseconds) {
printf("10bo߂̂ŋN܂B\n");
break;
}
exit(0);
}
ƂƁAsignal()֐ɂASIGINTOhandler1()NASIGALRMOhandler2()N悤ɂ܂B̌Awhile(1)ƂĖ[vAhandler2()ɂAtenseconds1ɂȂƁA[vł؂I܂BsƁAʂɁA
10bԋxe܂BCtrl-CŋNĂB
ƕ\܂A10bȓCtrl-CƁA邽тɁA
Ctrl-Co܂B
ƕ\A10bɁA
10bo߂̂ŋN܂B
ƕ\܂B

@alarm()֐Asignal()֐ł́AJavaScriptsetTimeout\bhقǂׂ͍̍sȂ̂ŁAAj[V\Ȃǂɂ͂ƂĂg܂񂪁AԂ̂Ƃ̊ĎȂǂɗpł܂BȂAsignal()֐𗘗p邽߂ɂ<signal.h>Asleep()֐Aalarm()֐𗘗p邽߂ɂ<unistd.h>AincludeĂB

@Oɂ́ȂɁA[U`SIGUSR1CSIGUSR2ƂOAraise()֐ŁAraise(SIGUSR1)Craise(SIGUSR2)Ƃ邱ƂɂASIGUSR1OASIGUSR2O𔭐邱Ƃł܂Bsignal(SIGUSR1, handler)ƂāASIGUSR1OɁAhandler()֐ɐڂƂł܂BvÕG[Ήɗpł܂Bnull|C^̐ɏނƔSIGSEGV(LیO)Cabort()֐SIGABRTȂǂ܂B

4DvEvZbT
@vEvZbT́ACRpC̃p[T(\)\[XEvỎ͂n߂OɁA\̗͂𐧌ł悤ɁA\[XEvOωc[łBvEvZbT̖߂́AfBNeBuƌĂ΂܂BfBNeBu̐擪ɂ'#'‚āA\[XEvO{̂Ƌʂł悤ɂ܂BfBNeBuɂ́A#includeC#defineC#ifC#endifC#elifC#elseC#ifdefC#ifndefȂǂ܂BC̕ł͂Ȃ̂ŁA';'tȂƂɒӂĂB

#include
@wb_Et@C̓ǂݍ݂Ɏg܂BC񋟂Ăwb_Et@C(߂ꂽꏊɒuĂ܂)ǂݍޏꍇ́At@C'<'C'>'ł܂B̃wb_Et@ĆA"`"ł܂BC̃\[XEvOƓꏊɒûłBłȂꍇɂ́Aǂɑ݂̂pXw肷Kv܂B
#include <stdio.h>
#include "test.h"
#include "../../mydir/header/test.h"
̂悤Ɏw肵܂B
#define
@萔A萔AϐA\̖̂Ɏg܂Bϐ̒Zk`ꍇA̐l𕡐QƂꍇȂǂɕ֗łB\[XEvOŁAł邱Ƃ𖾊mɂ邽߂ɃAt@xbg啶ŋLqČ邱Ƃ̂łAŋLqĂ͂ȂAƂ͂܂B
#define ARRAY_MAX 1024
#define TRUE 0xff
#define FALSE 0
#define BOOL unsigned char
#define good struct good
ƂĂƁAȍ~AvEvZbT́A\[XEvOint array[ARRAY_MAX]int array[1024]ɓǂݑւATRUE0xffɓǂݑւAFALSE0ɓǂݑւABOOLunsigned charɓǂݑւAgoodstruct goodɓǂݑւ܂Bstruct good *pg1Ƃ̂Agood *pg1ƏȗLq邱Ƃł܂BA
#define ARRAY_MAX 1024;
Ɩ';'tƁAint array[1024;]ƓǂݑւăG[ɂȂ̂ŒӂĂB
#ifC#elifC#elseC#endif
@\[XEvOɁAprintfU΂߂āAϐ̓j^ꍇAfoOǂ܂ŏڂ邩A邢̓foOɂ́AprintfAƂ悤ȏꍇɎg܂B
#define LEVEL 0
#if LEVEL > 2
printf("x1:%d\n", x1);
#endif
#if LEVEL > 1
printf("x2:%d\n", x2);
#endif
#if LEVEL > 0
printf("x3:%d\n", x3);
#endif
ƂȂĂꍇARpCĎsƉ\܂BłAŏ#define LEVEL 0#define LEVEL 1ƂăRpCAsƁAx317ł΁A
x3:17
ƕ\܂B#define LEVEL 2ƂăRpCAsƁAx2293ł΁A
x2:293
x3:17
ƕ\܂B#define LEVEL 3ƂăRpCAsƁAx17538ł΁A
x1:7538
x2:293
x3:17
ƕ\܂BꍇGȏꍇA#elifC#elseg܂BMODECHILDł邩AYOUNGł邩AOLDł邩ɂāAo̓bZ[ẄقȂst@C쐬ꍇA
#if MODE = CHILD
message = "΂낤";
#elif MODE = YOUNG
message = "΂";
#else
message = "΂Ă";
#endif
ƂāAMODE̐ݒɂACHILDst@CAYOUNGst@CAOLDst@CʁXɍ쐬邱Ƃł܂B
#ifdef
@PɁAfoOł邩ȂAƂȂA#ifdefgāA
#define DEBUG
#ifdef DEBUG
printf("success!\n");
#endif
ƂăRpCAsƁADEBUGdefineĂ̂ŁAsuccess!ƕ\st@Cł܂AfoOIāA#define DEBUGA#define NODEBUGɂ邩A'/*'`'*/'ň͂ŃRgɂĂ܂ƁAsuccess!\Ȃst@C܂B
#ifndef
@#ifdefƂ͋tɁAdefineĂȂꍇɎs܂B
#define PRODUCT
#ifndef PRODUCT
printf("success!\n");
#endif
ƂăRpCAsƁAPRODUCTdefineĂ̂ŁAsuccess!\Ȃst@Cł܂B


TOPy[Wɖ߂@@
TOP@@
wywmē@@
w̃y[W@@
̃y[W@@
yVuO@@
wywmuO@@
wywmtwitter@@
񍐃uO@@
vCoV[E|V[


yLz@LłB̊F܂̂x肽A낵肢܂B
yLz@L͂܂łłB

© 2005-2025@F(L)