인터뷰 질문: C 언어는 Hello World 프로그램을 구현하기 위해 10가지 방법을 사용합니다.
1 가장 고전적인 "Hello world!", printf를 직접 사용하여 "Hello world!"를 출력합니다.
#include stdio.hgt; include lt; iostreamgt;
int main(){
printf("Hello world! ") // 교과서 작성 방법
puts("Hello world! ! "); // 내가 가장 좋아하는 것
puts("Hello" " " "world!"); // 문자열 접합
std::cout lt; lt; " Hello world !" lt; lt; std::endl; // C 스타일 교과서 작성
return 0;}
2. "Hello world!" 매크로로 작성
"#"은 매개변수 이름을 "추출"하여 문자열로 변환할 수 있습니다.
#include lt;stdio.hgt;
#define Say(sth)는 (#sth)를 넣습니다.
int main(){
return Say(Hello world!);
}
3. 컨텍스트에서 벗어난 "Hello world!" ;
int main(){
return puts ("말하지 마세요: Hello world! "[12]);
}
4. 종료 시 실행되는 "Hello world!"
atexit()는 콜백 함수를 등록합니다. 이 함수는 여러 번 호출할 수 있으며 마지막으로 등록된 함수가 먼저 실행됩니다.
#include lt;stdio.hgt;
#include lt;stdlib.hgt;
void say(){printf("world! "); }
void sth(){printf("Hello ");}
int main(){
return atexit(say), atexit(sth) ;
}
5. 자신만의 "Hello world!"를 읽어보세요.
// Hello world!
#include lt; ;
#include lt;fstreamgt;
#include lt;stringgt;
int main(){
std:: ifstream ifs(__FILE__);
std::string say, some, word;
ifs gt;gt; say some gt;gt;
std::cout lt;lt; 일부 lt;lt; " " lt;lt;
0을 반환합니다. . 두 단어로 구성된 "Hello world!":
전역 클래스의 인스턴스를 선언합니다. 이 클래스의 생성자는 기본 함수가 실행되기 전에 호출되고 소멸자는 실행 후에 호출됩니다.
#include lt;iostreamgt;
class say{
public: say(){std::cout lt;lt; "Hell";}
~say(){std::cout lt;lt; "world!";}
}hello;
int main(){
std::cout lt; "o ";
return 0;
}
7. "Hello world"를 전달합니다. 템플릿의 !"
#include lt;iostreamgt;
template lt;char *wordsgt;
class say{
public :
p>
void 연산자 () (){std::cout lt; word;}
};
char hello[ ] = "안녕하세요!";
int main(){
return hellogt ()(), 0; >
8. 함수의 비공개 "Hello world!"를 호출합니다.
#include lt;iostreamgt;
#include lt;cstddefgt;
{
비공개:
virtual void say(){std::cout lt; "Hello world!"
>int main() {
비밀 단어;
(reinterpret_castlt; void (*)()gt; (**(intptr_t**)(amp; word) ))();
return 0;
}
9. 함수의 반환 주소를 직접 수정
#include lt ; stdio.hgt;
#include lt;stdlib.hgt;
#include lt;stddef.hgt;
void say(){
puts("Hello world! ");
exit(0);
}
int main()
{
휘발성 intptr_t a = 0;
휘발성 intptr_t * p = amp;
*(p 2) = (intptr_t)say;
*(p 3 ) = (intptr_t)say;
return 0;
}
10. "안녕하세요!" by 외계인
#include lt;stdio.hgt;
void Alien_say (char * p){
while (putchar (*(p = *(p 1) - *p))) ;
}
int main(){
return Alien_say ("BETHO! Altec
오 리욤(a loadjudas!) dowd."), 0;
}