IT TIP

세미콜론이없고 IF / WHILE / FOR 문이없는 C의 hello world

itqueen 2020. 11. 28. 13:25
반응형

세미콜론이없고 IF / WHILE / FOR 문이없는 C의 hello world


내 친구는 IF/WHILE/FOR세미콜론 없이 "hello world"를 인쇄하는 C 프로그램을 작성할 수 있다고 말합니다 . 최소한의 조사 끝에 나는 불가능하다고 그녀에게 말했다. 가능합니까?


포함 파일에서 세미콜론을 훔치는 "휴대용"방법을 찾으려고했습니다. 이것은 Linux에서 작동합니다.

int main(int ac, char **av)
{
#define typedef
#define uint8_t a[printf("hello world\n")]
#include <stdint.h>
}

이것은 하나 typedef unsigned char uint8_t가 내 printf가되도록합니다.

효과가 있었던 또 다른 트릭은 #define모든 표준 stdint 유형 stdint.h을 제거하여 여러 세미콜론으로 줄이는 것입니다.

이 두 가지 모두 FreeBSD에서 평범한 이유 __uint8_t는 인용 된 예제에서 typedef 제거가 실패하고 다른 경우에는 모든 비 세미콜론을 성공적으로 제거하지 못함을 의미합니다.

포함 파일에서 세미콜론을 깨끗하게 훔칠 수 있어야 할 것 같습니다. 누구든지 내 시도를 향상시킬 수 있습니까?


#include <stdio.h>

int main() {
    switch (printf("Hello, world!\n")) {}
}

친구가 "오, 스위치도 사용할 수 없습니다"라고 말하면 다음을 수행하십시오.

#include <stdio.h>

int main(int argc, char *argv[printf("Hello, world!\n")]) {}

나는 질문의 정확한 표현에 달려 있기 때문에 이것을 제안할지 여부에 대해 찢어졌습니다.

#error hello world

(만약 아무것도 없다면 "어떻게"Hello World를 main"... 없이 어떻게 인쇄합니까?"라는 후속 작업을 방해 할 것입니다 .)


IF / WHILE / FOR없이 세미콜론없이 "hello world"를 인쇄하는 C 프로그램을 작성할 수 있습니다.

쉬운. C는 대소 문자를 구분합니다.

int main()
{
    if (printf("Hello, World\n")){}
}

ifC의 키워드 IF는 아닙니다.


다음과 같은 제한 사항을 해결할 수도 있습니다.

#define X i##f
#define Y whi##le
#define Z f##or
#define W swi##tch

는 어때:

#include <stdio.h>
int main(void *HAHA[printf("Hello world!\n")]) {}

C 멋지지 않습니다 :)


switch 문을 사용하여 원하는 출력을 얻을 수 있습니다. 아래 코드는 다음과 같습니다.

#include<stdio.h>

int main()
{
  switch(printf("hello world"))

return 0;
}

이것이 당신을 도울 수 있기를 바랍니다

참고 URL : https://stackoverflow.com/questions/4147836/hello-world-in-c-without-semicolons-and-without-if-while-for-statements

반응형