2011-09-09 2 views
1

내가 내 이해의 최선을 시도하고 C.Xcode는 "this"가 C의 예약어 키워드라고 주장합니다.

에 그것은 this을 주장하는 것

는 "예약 된 언어 키워드가"를하는 방법 매개 변수 this의 이름을 바꿀 엑스 코드의 Refactor > Rename 명령을 사용하지만, 그렇지 않습니다.

Xcode의 버그입니까? 또는 나는 무엇인가 놓치고 있냐?

C Reserved Language Keyword?

답변

3

C99에서는 예약어가 아니지만 C++ 98에서는 예약어입니다.

4

그것은 버그가 아닙니다.

this이 C에 예약되어 있지 않은 경우에도 이와 같은 변수 이름을 지정하는 것은 매우 나쁜 생각입니다. C 코드를 C++과 혼합 할 수 있습니다. 이 경우 프로그램이 컴파일되지 않습니다.

그래서 대신 리팩토링의, 심지어

당신이 정말로 당신이 표준 검색을 수행하고 대체 할 수 있음을 원하는 경우 C.

으로,이를 사용하지 마십시오. 그러나 다시, 나쁜 아이디어.

+1

IMO '.c' 파일 *을 C++로 컴파일하지 않으면 더 좋을 것 같습니다. 그렇다면 누가 실제로 작동하는지 (즉 동일한 행동을 취해야 함) 책임이있는 사람은 누구입니까? C++로 그들을 컴파일하는 사람은 아마 당신이라고 생각하지만 실제로 그 노력을 넣고 테스트 할 것입니까? 그렇지 않다면, C++에서 공용'.h' 파일을 사용할 수 있는지 확인하십시오. (그래서'this'를 매개 변수 이름으로 사용하지 마십시오.) 제대로하지 않고 C++로 컴파일하는 것을 지원하는 것처럼 행동하지 마십시오. 그리고 그것을 지원하는 것을 괴롭히지 마십시오 : 이중 언어 코드 작성은 꽤 무의미합니다. –

+0

설명해 주셔서 감사합니다. typedef 구조체에서 작동하는 메소드가 있고 다른 언어의 인스턴스 메소드처럼 작동하는 경우 첫 번째'this' 매개 변수의 이름을 표준화하고 싶습니다. 대체 이름에 대한 제안? 나는 Xcode가'self'를 비슷한 이유 (objective-c)로 사용한다고 가정하고 있습니다. – Steve

+1

이것은 버그입니다. C와 C++는 같은 언어가 아니며'this'를 "예약어 키워드"라고 부르는 것은 단순히 거짓입니다. –

0

"this"는 (는) Java에서도 키워드입니다. Xcode 4에 대해서는 잘 모르겠지만 이전 버전의 Java 개발도 사용할 수 있습니다. 일부 전선이 교차 할 가능성이 있습니다 ...

+0

왜 투표가 안되는 지 잘 모르겠지만 제 대답에 대한 이유를 분명히 해줄 것이라고 생각했습니다. 다운 유권자의 예의가 같은지 궁금하십니까? –

+0

Xcode가 "리팩토링"도구에서 다른 언어를 고려하고 있기 때문에 다른 사람들과 똑같은 말을하고 있다고 생각하기 때문에 +1 할 것입니다. 질문을보고 답변을 게시 할 시간을내어 주셔서 감사합니다! – Steve

+0

ㅎ - 동정심에 감사드립니다. ;-) 그것은 확실히 하나 이상의 언어로 된 예약어입니다. 제 "기여"는 Java가 적어도 Xcode가 지원되는 * 언어였던 것입니다. –

관련 문제