INT의 XXXX (INT) 또는 무효 XXX (INT)return 문을 사용하지 않고 호출하는 함수에 값을 반환하는 방법은 무엇입니까?
답변
당신 글로벌 변수 (또는, 작은 더 나은, 당신은 파일 범위에서 선언 된 정적 변수를 사용할 수 있습니다)를 사용할 수와 같은 함수 프로토 타입 , 또는 출력 매개 변수를 가져 오기 위해 함수를 변경할 수 있지만 궁극적으로는 return
문을 사용해야합니다.
- 값을 할당하는 전역 변수가있을 수 있습니다.
- 정수를 저장하는 객체를 전달할 수 있으며, 함수에서 값을 변경하면 객체가 값 유형이 아니기 때문에 다른 곳에서도 변경됩니다.
또한 사용중인 프로그래밍 언어에 따라 다릅니다.
편집 : 죄송하지만 지금은 C 태그를 보지 못했다, 그래서 마지막 문장 C 함수에서 값을 반환하는
질문에 태그가 지정되었습니다. – dreamlax
더 현명한 편집은 마지막 문장을 지우는 것일뿐입니다. –
우리는 전역 변수를 사용하지 않고 볼랜드 C 컴파일러에서 할 수 있습니다 ... – Muthuraman
두 표준 방법을 무시하거나 할 수는 명시 적으로 return
문, 또는에에 있습니다 포인터 매개 변수를 사용하고 포인터에서 객체에 지정하십시오.
다른 방법이 있지만 전 세계의 악의적 인 코드 양을 늘리기 위해 두려워하지 않습니다. 이 두 가지 중 하나를 사용해야합니다. 참조로
사용 패스 :
void foo(int* x, int* y) {
int temp;
temp = *x;
x* = *y;
y* = temp;
}
void main(void) {
int x = 2, y=4;
foo(&x, &y);
printf("Swapped Nums: %d , %d",x,y);
}
정수를 포인터로 변환 (구현 정의 동작) 한 다음 x 및 y를 초기화할 때이 포인터 변수의 주소 (int 포인터에 대한 포인터)를 두 인수에 대한 int 포인터를 예상하는 함수에 제공합니다. – dreamlax
* 한숨 *. 이것은 C의 복사 전용 매개 변수로 수동으로 포인터를 전달하는 메커니즘이 "참조에 의한 전달"이라고 생각되는 방식입니다. 두 번째 방법은 첫 번째 균열이 잘못되어 실행시 발생할 수있는 상황을 누가 알게되는지입니다. **이 대답은 가능한 경우 C를 피해야하는 이유에 대한 * Exhibit A * ** –
다음과 같이 가정합니다. int x = 2, y = 4; –
일반적으로 당신은 당신의 함수 외부 변수에 대한 참조를 제공합니다.
void foo(int *value)
{
*value = 123;
}
int main(void)
{
int my_return_value = 0;
foo(&my_return_value);
printf("Value returned from foo is %d", my_return_value);
return 0;
}
이 시나리오는 필요하지 않습니다. 볼랜드 C 컴파일러를 사용해보십시오 .... – Muthuraman
@Muthuraman - 당신이 그곳에서 무슨 말을하고 있는지 모르겠지만, 이것은 아주 기본적인 표준 C처럼 보입니다. 볼랜드 C 컴파일러에서 잘 작동합니다. –
return 0 대신 다른 명령문을 사용하는 방법; 당신의 코드에서 – Muthuraman
간단한 답은 int 반환 값으로 지시문을 사용해야하는 첫 번째 프로토 타입과 같은 프로토 타입이 제공됩니다.
원칙적으로 int에 대한 포인터를 형 변환하여 매개 변수로 전달하고 다시 캐스팅하고 수정하는 것과 같은 무서운 일을하는 것이 원칙적으로 가능합니다. 다른 사람들이 당신에게 암시 한 것처럼, 당신이 이것을 함의 모든 함의를 이해하고, 당신의 질문으로 판단한다면 나는 당신이하지 않는다고 말할 것입니다.
int wel();
int main()
{
int x;
x = wel();
printf ("% d \ n", x);
return 0;
}
INT의 아() {
레지스터의 INT TVR의 ASM ("AX");
tvr = 77;
}
우분투 컴퓨터의 GCC 컴파일러로 컴파일되었습니다. 볼랜드 컴파일러에서는 반환 할 다른 방법.
여기에 return 문이 사용되지 않습니다. – Muthuraman
그리고 왜, 왜 이런걸하고 싶습니까? 절대 목적이 없으며, 표준 C (또는 어셈블러에 의존하기 때문에 C 임)가 아닌, 전혀 휴대 할 수 없습니다. – Arkku
(철학적으로 레지스터가 전역 변수라고 주장 할 수도 있습니다.) – Arkku
두 개 이상의 값을 반환해야하는 경우 새 할당 구조체에 대한 포인터를 사용하지 않는 이유는 무엇입니까?
typedef struct { int a, char b } mystruct;
mystruct * foo()
{
mystruct * s = (mystruct *) malloc(sizeof(mystruct));
return s;
}
테스트하지 않았지만 유효해야합니다.
- 1. 공용어를 사용하지 않고 SQL 문을 작성하는 방법은 무엇입니까?
- 2. C에서 함수에 2D 배열을 반환하는 방법은 무엇입니까?
- 3. 다른 준비된 문을 사용하지 않고 NULL 및 일반 값을 처리하는 방법은 무엇입니까?
- 4. 스팸 바인딩을 사용하지 않고 파이썬에서 C++ 파일을 호출하는 방법은 무엇입니까?
- 5. RadEditor의 프린트 버튼을 사용하지 않고 프린트 기능을 호출하는 방법은 무엇입니까?
- 6. 클래스 함수에 linc를 전달하고 호출하는 방법은 무엇입니까?
- 7. 모든 함수에 대한 return 문
- 8. 함수 내에서 return 문을 사용하는 것은 무엇입니까?
- 9. 함수에서 no-return 문을 검색하는 방법
- 10. throw 문과 switch 문을 사용하여 null 값을 반환하는 경우
- 11. 자바 빈을 사용하지 않고 자바 스크립트에서 JSP 페이지로 값을 반환하는 방법은 무엇입니까?
- 12. 브라우저를 사용하지 않고 Flash를 사용하지 않고 글꼴을 포함시키는 방법은 무엇입니까?
- 13. 문자열에서 Enum 값을 반환하는 방법은 무엇입니까?
- 14. 쉘에서 너무 많은 조건문을 사용하지 않고 다른 프로그램을 호출하는 함수에 전달 된 인수를 효율적으로 처리하는 방법은 무엇입니까?
- 15. 반환하는 인쇄 개체에서 파이썬 반환 문을 사용하지 않음
- 16. SQLite 문에서 선택한 값을 반환하는 방법은 무엇입니까?
- 17. 비동기 콜백 함수에서 값을 반환하는 방법은 무엇입니까?
- 18. return 유형이 void 인 메소드는 return 문을 사용해야합니까?
- 19. aasm 이벤트에서 값을 반환하는 방법은 무엇입니까?
- 20. TI-89에서 함수 값을 반환하는 방법은 무엇입니까?
- 21. 하나의 return 문에서 두 개의 문자열을 반환하는 방법은 무엇입니까?
- 22. ajaxUpload 함수에 값을 전달하는 방법은 무엇입니까?
- 23. 자바 스크립트에서 값을 반환하는 중
- 24. 콘솔을 표시하지 않고 _wsystem을 호출하는 방법은 무엇입니까?
- 25. ActionScript의 함수에 대한 참조를 JavaScript로 반환하는 방법은 무엇입니까?
- 26. C# 메서드에 return 문을 추가하면 성능이 향상됩니까?
- 27. 자바 스크립트 -는 IF 또는 스위치 문을 사용하지 않고,
- 28. bool을 반환하는 함수에 문제가 발생했습니다!
- 29. '연산자'라는 단어를 사용하지 않고 템플릿 기반 연산자 오버로드를 호출하는 방법은 무엇입니까? 내가 주석을 제거하면
- 30. AudioSystem을 사용하지 않고 FrameLength를 계산하는 방법은 무엇입니까?
왜'return'을 사용할 수 없습니까? – dreamlax
확장해야합니다. 'return' 문은 함수에서 값을 반환 할 때 사용합니다. 너 정확히 뭐하려고? –
질문은 실제로 약간 혼란 스럽습니다. 전역 변수를 사용할 수는 있지만 "함수의 반환 값"과 다릅니다. – khachik