작성
·
196
0
답변 2
0
안녕하세요! 혹시나 도움될까 싶어서 글을 쓰고 난 후 사실 배워가는 주제에 너무 아는척 나선게 아닐까 걱정했었는데 좋은 의미로 받아주셨다니 다행입니다.
제가 이런걸 또 못참는 성격이라 괜히 또 이야기를 꺼내야 해서요...
네 지적이 맞는것 같습니다ㅜㅜ 다만 나쁜 의도로 이야기를 꺼낸것이 아니라 혹시라도 도움이 될까 이야기를 꺼낸 것이지 절대 비방이나 모욕 등 나쁜 의도로 이야기를 꺼낸것이 아니라는 의미에서 그렇게 썼는데 표현이 이상했네요..ㅎㅎ
그리고 강사분께서 조금 더 쉽게 설명하고자 일부러 그렇게 표현하셨다는 말씀하신걸 보고 제가 강의하시는 분의 고민을 이해하지 못하고 나선점 우선 죄송하게 생각합니다. 그 말씀을 보고 다시 생각해보니 왜 코드를 그렇게 설명하셨는지 이해가 가더군요ㅎㅎ
1번 이야기에 관해 조금 더 자세하게 이야기 해주시길 요청해 주셨는데 이건 사실 경험적인 부분이고 명확하게 비교한 문서같은 것은 저에겐 없습니다
제가 이야기하고자 했던 것은 정확히 말씀드리면 컴파일러에 따라 디폴트로 셋팅된 옵티마이징 레벨이 다르기에 배열포인터를 넘겨주는 것(abcArray)과 배열원소의 주소를 넘겨주는것(&abcArray[0])이 어셈블러로 번역되었을때 코드가 다를 수 있다는 의미였습니다
물론 컴파일러가 성능이 우수하여 이것을 적절히 옵티마이징 해 준다면 실행성능에 차이가 없겠지만 컴파일러 자체의 성능이 그리 좋지 못하다면 위와 같은 결과가 나올수 있습니다
이런 차이가 두드러지는 것이 임베디드 혹은 펌웨어를 위한 크로스 컴파일러인 것으로 알고 있구요
물론 강사님이 어떤 의도로 코드를 짜신 건지 알고나니 제가 주제넘었다는 것을 깨달았습니다 혹시라도 언짢으신 부분이 있으셨다면 정말 죄송합니다
혹시나 이런 내용을 다룬 블로그 같은게 있나 싶어서 찾아봤는데 비슷한 이야기를 한 블로그가 있어서 링크 걸어둡니다
https://m.blog.naver.com/tipsware/221018587422
다시한번 너무 좋은지식 착한 가격에 풀어주셔서 너무 감사합니다! 앞으로도 많은 좋은 강의 기대하겠습니다!좋은 하루 되세요~
0
안녕하세요! 좋은 말씀 감사합니다.
저도 C언어를 쓰는 문법만 사용하고, 또 강의에서는 직관적이고 이해하기 쉬운 방법으로 코드 작성을 하기 때문에 강의용 코드는 최적화적인 관점에서는 좋은 코드가 아닙니다.
1. 배열명은 배열의 첫번째 원소의 주소인 것은 알고있습니다만 컴파일러에 따라 최적화를 다르게 한다는것은 처음 듣는 내용이네요~ 혹시 참고할만한 자료가 있으시면 알려주시면 감사하겠습니다!
배열 전달 시 배열 명으로 전달하면 코드만 봤을때 call by value 인지 call by reference인지 한눈에 알기 어렵습니다. 강의에서는 코드를 봤을때 직관적으로 이해되도록 설명하고 있기 때문에 &arr[0] 이런식으로 전달합니다.
2. 네 맞습니다. interrupt handler에서 사용되는 전역변수는 volatile로 선언되지 않으면 최적화되면서 사라질 수 있으나, 강의에서는 코드 최적화 레벨을 -0으로 하기 때문에 그 현상은 일어나지 않습니다. CubeIDE의 코드 최적화 레벨은 기본 -0으로 되어있습니다.
그 내용은 본 강의에서는 따로 언급하진 않았습니다.
3. 싱크를 맞추기 위한 방법이 여러가지 있겠으나, 강의에서는 제가 판단했을때 이해하기 쉬운 방법을 선택합니다. 사실 이것도 주관적인거라서 어떤 것이 더 쉬울지는 수강하시는 분들에 따라 달라지겠죠. 방법이 하나만 있는것이 아니라서, 다양한 방법을 직접 시도해보는 것은 언제든 좋습니다.
마지막으로 "부디 지적하는것으로는 바라보시지 않으셨으면 좋겠습니다."라고 하셨는데, 올리신 글은 지적하는 것이 맞습니다. 그리고 지적하는 것이 잘못됐거나 나쁜 것은 아니라는 생각입니다.
근데 지적하는 사람들이 악의를 가지고 지적하거나 혹은 악의가 없더라도 받아들이는 사람이 기분나쁘게 지적하는 경우가 많기 때문에 건전한 논쟁이 잘 안되는 것이죠.
제 영상은 교육 영상이기 때문에 잘못된 것이 있다면 지적받고 수정해서 수강생 분들에게 정확한 정보를 제공해야 합니다. 앞으로 진행하시다가 잘못된 것이 있다면 언제든 글 올려주셔도 좋습니다.
그리고 1번의 경우 컴파일러마다 미묘한 성능차이가 난다고 말씀하셨는데, 어떤 미묘한 차이가 나는지도 설명해주시면 좋을 것 같습니다. 혹은 참고할만한 자료가 있으면 공유해주셔도 좋겠네요~ 다른 수강생 분들도 보실 수 있을테니까요.
좋은 지적 감사합니다!