C coding 할 때 Android와 desktop의 차이

C coding 할 때 Android와 desktop의 차이

Kernel version과 관계없이 libc와 같은 기본적인 library가 조금씩 달라서 코드가 다르게 실행될 수 있다.

예를 들어

위코드는 그냥 linux desktop에서는 잘 돌지만 안드로이드에서는 무한루프에 빠진다.

-1 대신 0xFF를 적어주면 잘 돌아간다. 하지만 그렇게 하면 이번에는 desktop에서 돌아가지 않는다.
이것을 해결하려면 아래와 같이 고쳐야 한다.

뭐 이런 거지같은…
특히 컴파일러가 상기 while 문을 무한루프로 보고 그 아래에 있는 코드들을 최적화 해버리면 전혀 다른 부분에서 warning들과 error들이 나타나거나 사라지면서 문제를 찾기 어렵게 만든다.

Leave a Reply