Objective-C 프로젝트 중 많은 부분이 C 함수를 많이 사용하는 파일 중 일부를 프로젝트에 넣었습니다. .m
대신 .c
파일에 코드를 저장하십시오. 나는 .m
이 Objective-C이고 .c
은 C를위한 것이지만 .c
을 사용하면 어떤 이점이 있습니까? .m
할 수있을 때 있습니까? 성과가 증가하거나 합병증이 있습니까? GCC 또는 clang이 각각 다른 코드를 컴파일할까요?.c 파일이 필요합니까?
답변
주된 이점은 .c 파일을 정상적인 C 프로그램에서 그대로 사용할 수 있으며 호환되지 않는 Objective-C 구문을 우연히 통합하지 않는다는 것입니다.
예, Xcode는 'C'컴파일러로 .c 파일을 컴파일하고 'Objective-C'컴파일러로 .m 파일을 컴파일합니다. 다른 언어 옵션을 사용하는 것과 동일한 컴파일러 바이너리입니다. 그렇기 때문에 상대적인 성과가 너무 다를 것으로 기대하지는 않습니다.
그래서 당신은 그들 사이에 많은 차이를 기대하지 않겠습니까? –
나는 많은 차이를 기대하지 않을 것이다. – ldav1s
다른 모든 것 외에도 .c는 크로스 플랫폼 개발에 유용합니다. 하나의 플랫폼에서 다른 플랫폼으로 이식하는 오버 헤드는 매우 낮거나 거의 무시할 정도입니다. . 그리고 대부분 애플리케이션의 백엔드 또는 모델은 성능이 요구되며 기계와 직접 상호 작용이 필요한 "C"를 사용하여 개발됩니다. 하드웨어 및 물건과의 상호 작용 등.
Im 프로젝트의 대부분이 objective-c 일 때 C 코드를 .m 파일에 두지 말라는 것에 대해 묻지 않습니다. –
- 1. 정말 MainWindow.xib 파일이 필요합니까?
- 2. json.js 파일이 필요합니까?
- 3. resx 파일이 필요합니까?
- 4. 비 -hd 파일이 필요합니까?
- 5. Crystal Reports XSD 파일이 필요합니까?
- 6. 어떻게 NPRuntime에 xpt 파일이 필요합니까?
- 7. 얼마나 많은 .snk 파일이 필요합니까?
- 8. BREW MP에 서명 파일이 필요합니까?
- 9. TFS TFS에 여전히 .vspcc 파일이 필요합니까?
- 10. Struts 2에는 conversion.properties 파일이 항상 필요합니까?
- 11. Axis 웹 서비스에 AAR 파일이 필요합니까?
- 12. 설치 프로그램을 선택할 때 MSI 파일이 필요합니까?
- 13. C# - 실제로 디버그 빌드가 필요합니까?
- 14. C#/WinForms : IWin32Windows가 필요합니까?
- 15. C++ 런타임이 필요합니까?
- 16. C 파일이 존재하는지 확인하십시오.
- 17. c/C++에서 세미콜론은 언제 필요합니까?
- 18. 이진 AND 텍스트 파일이 포함될 때 버전 관리가 필요합니까?
- 19. 내 공개 웹 사이트에 반드시 robots.txt 파일이 필요합니까?
- 20. IIS 7에서 asp.net hello world를 실행하려면 웹 구성 파일이 필요합니까?
- 21. osql.exe를 독립 실행 형으로 실행하려면 어떤 dll 파일이 필요합니까?
- 22. NFS 파일이 C 코드로 열림
- 23. C++ : bmp 파일이 합법적인지 확인합니다.
- 24. Windows 7에서 C# TaskScheduler 라이브러리를 사용하여 생성 된 .job 파일이 더 이상 필요합니까?
- 25. 동적으로 링크하고 있는데 왜 C++ 링커에서 빌드하는 동안 라이브러리 파일이 필요합니까?
- 26. SQL Compact 4.0의 개인 배포에는 C++ 재배포 가능 패키지가 필요합니까?
- 27. 왜 C#은 조건문 주위에 괄호가 필요합니까?
- 28. C# 프로토 타입에서 ASP.NET으로 변경하려면 무엇이 필요합니까?
- 29. C# - 목록 구성원에 깊은 복사본이 필요합니까?
- 30. C++에서 main()이 정말로 필요합니까?
두 컴파일 사이에 많은 차이가 있습니까? –
@Justin Meiners : 아니요. 나는 Objective-C 또는 C99로 컴파일하는 것 사이에 많은 차이점을 발견하거나 들어 본 적이 없다. AFAIK, GCC와 Clang의 Objective-C 컴파일러는 Objective-C 프로그램의 일반 C 부분을 일반 C 프로그램과 동일한 방식으로 컴파일합니다. Objective-C++에서도 마찬가지입니다.이 컴파일러는 다소 다르며 Objective-C 또는 C++ 단독 컴파일보다 시간이 오래 걸립니다. – Chuck