덕분에 대충 그래픽API로 눈내리게하는거 방법은 알것같아요
근데 쓸데가 없네요...
typedef struct { int x, y, z; } $; static $ store[150]; static int pointE, max; init() { srand(time(NULL)); h = GetStdHandle(STD_OUTPUT_HANDLE); pointE = 0; } next() { return rand(); } nextsi() { return (rand() % 6) - 3; } nextss() { return (rand() % 8) - 4; } inits(s) $* s;{ s->x = next() % 80; s->y = 0; s->z = ".'`*"[next() % 4];} create$() { if (pointE < 150) { inits(&store[pointE++]); if (max != 150) max = pointE; } else { max = 150; pointE = 0; } } create5() { for ( int i = 0; i < 5; i++ ) create$(); } $ copy$(s) $ s; { $ r = { s.x, s.y, s.z }; return r; } draw$(p, n) $ p; $ n; { clsxy(p.x, p.y); putxy(n.x, n.y, n.z); } grow$(s) $*s; { s->x += nextsi(); s->y += 1; } chk$(s) $ s; { if (s.y + nextss() < 20) return 1; return 0; } main() { init(); create5(); while(1) { for ( int i = 0; i < max; i++) { if (chk$(store[i])) { $ t = copy$(store[i]); grow$(&store[i]); draw$(t, store[i]); } } Sleep(200); create5(); } return 0; }
ㅁㅊㄷ
왜 전 컴파일이 안대져
include가 생략되었네요
어디서 오류나죠?
달러표시는 머죠
달러 표시는 뭐죠
달러기호는는 미국의 화폐기호입니다
미워..
$는 명명입니다.
그니깐 위 소스코드에센 구조체 이름이네요
변수명을 $로도 쓸 수 있습니다.
골뱅이는 왜 안되는지 모르지만...
글쿠나
원래 변수명은 특문 안된다고 배웠는데 달러 예외인가보네요
$ copy$(s) $ s; { $ r = { s.x, s.y, s.z }; return r; }이건 뭔가요.. 이거 이해할려면 뭘 배워야되나요
그냥 예전에 이상한 짓 많이하면서 우연히 알게된거임. 잘 모르겠음. 컴파일러 구현봐야될듯
일단 $를 snow로 전부 치환하시고 보시면 이해되실겁니다. 간단히 말하면, $라는 구조체를 입력받아 값을 복사하여 출력한다고 보면됩니다.
snow copy(snow s) { snow r = {s.x, s.y, s.z}; return r; } 이라는 구문이 되겠네요
snow copy(s) snow s; { snow r = {s.x, s.y, s.z}; return r; } 이렇게도 표현하고요
snow copy(s) snow s; { snow r = {s.x, s.y, s.z}; return r; } 같은 문법 처음봤애오 고맙습니다
전 md5코드 보고 처음알게됬던 구문이죠. 컴파일러쪽 파보면 자세한거 많이 알 수 있어요. syntaxtic sugar라고
syntactic sugar
ㄴ뎬쟝 별게 다있네.. ㅡ.ㅡ학교에서 가르쳐주는것만 열심히 챙기다간 빙싄대겠네.. ;;
아니 알아도 실무엔 절대로 쓸모없는 지식 ㅋ
저거의 예중 하나가 *(array+1); 을 array[1];로 표현하는 것 정도 이런게 신택스 슈거
그거랑 -> 같은게 있다는건 아는데 snow copy(s) snow s; 이거는 완전 처음봤어
쓸모없다고 할수있을까. 내가 쓸때야 내가 아는것대로 쓰면 되지만 남이 쓴 코드를 못읽을텐데
tcpl읽으면 아마 대부분이 나올겁니다. C99 표준을 보면 없는게 없으니 더 많이 알 수 있고요
코로모//됬->됐