소개
게시글
질문&답변
char* is incompatible with parameter of type char*
해결했습니다. Const 해주니까 해결됐어요.
- 0
- 2
- 893
질문&답변
7_15강 명령줄인수 강의에서 명령줄 인수를 쓰는 이유가 무엇인가요
나중에 다른 수강생들도 비슷한 질문을 할거 같아서, 위에 홍교수님께서 잘 정리해 주신부분데 덧데어서 말씀 드리자면, Command Line Argument 명령어를 사용하는 이유는 만드신 프로그램을 밖에서도 컨트로를 할 수 있게 하기위함인데요, 이 예로 교수님이 게임의 난이도를 말씀하셨습니다. 예를 들면 실무에서 프로그래밍을 할때, 한 program이 여러tasks를 수행하는 프로그램을 만드시겠죠, 그럴때 hard coding해서 모든 변수를 program 안에서 만드실 필요가 없는거에요. 그렇기 때문에 main에서 argument를 받아, 그에 따른 다른 func를 작동시키는 것이죠, 교수님 말씀대로, user가 program을 실행하면서 프로그램이 game_easy나 game_hard 둘중 어느버전으로 실행될지를 정할 수 있는거에요. 여기서 왜, if (count == 1) 일때 cout를 하냐고 물어보셨는데, argv[0]은 주로 program name을 담고 있어요. char도 array이에 한 종류죠, 그렇기 때문에, code보시면 교수님이 argv[count]로 작성 하셨어요. 그렇기 때문에, count = 1로 하게 된것이죠. 즉 user가 입력한 정보는 argv[1] 부터 시작된다는 말입니다. 여기서 만약 count = 0으로 하게 되면 저 코드는 아무 의미가 없어지죠, 왜냐 argv[0]는 그냥 프로그램 이름을 보여주는 것이니까요. 교수님의 코드는 command line argument의 예를 위한 코드이게 그냥 cout를 해서 보여준것만 이죠. 제가 이해한 부분에 잘못된 부분이 있다면 알려주세요~ 그리고 더 자세히 설명해주는 글이 있어요 https://www.quora.com/What-is-the-use-of-command-line-arguments-in-C-programming
- 13
- 6
- 1.1K
질문&답변
교수님, 질문 있습니다 ㅠㅠ
일단 위에 코드를 보게 되면, 'else return false;' 가 빠져 있습니다. 제 생각으로는 & sybol를 제거 했을때, 더의상 reference로 사용 되는게 아니기에, cpu arithmetic register에 계산을 위해 값을 복사해 오게 됩니다. 그렇게 되면 연산후에 복사한곳 그리고 복사되어진곳 두 register에 값이 남아있게 됩니다, 그렇기에 다음에 주어진 값이, condition에 맞지 않을경우 false값을 return 하지 않기 때문에, true or false를 담고 있는 variable 혹은 register에 전에 앞서 return 된 값(true)이 남아 있기 때문에, complier는 모든 값을 true로 받게 되는거 같습니다. x86 Assembly 코드로 생각해 보시면 아마 이해가 더 쉬울거 같습니다.
- 0
- 3
- 229