작동하지 않는 무효로 통과 포인터

T

tebron

Guest
안녕하세요, 제가 초보이다 때부터는 C의 당신이 전문가에게 질문을 제출하고 싶습니다 나는 문제를 해결하는 방법을 모르겠어요. 나는 무효에 매개 변수로 포인터를 필요 기능을 가지고, 내가 LED를 켜거나 하나 또는 제로의 값을 전달해야합니다. 제가 컴파일러는 변수에 값을 출혈이 현실에서 오류가 무료입니다 경우에도 아래의 코드를했지만,하는 것은 항상 제로 남아있다. 당신이 루틴을 운영하는 등 나에게지도를 줄 수 있나요? 정말 감사합니다. 메인 (무효) {동안 (1) {TaskLedUno ((BOOL *) 1);}} 무효 TaskLedUno (무효 * pFlagLed) {BOOL 없어져야; / / (1) {없어져야 =* (BOOL *) pFlagLed 동안; pLED_1 ( Bled 호텔);}}
 
당신의 문제가 리터럴에 대한 포인터를 전달에서 유래, 대부분의 컴파일러가 하나있다면하지만, OS에 따라 오류없이 코드를 컴파일되며, 실행시 액세스 위반을 던질 것입니다. 대신이 코드를보십시오 :
Code:
 메인 (무효) {BOOL 플래그 = (BOOL) 1, / / 또는 / / BOOL 플래그 = TRUE; / / 정의해도 (1) {TaskLedUno (& 플래그);}} 무효 TaskLedUno ( 무효가 * pFlagLed) {BOOL 없어져야; / /를하면서 (1) {없어져야 =* (BOOL *) pFlagLed; pLED_1 (없어져야);}}
코드는 위의 컴파일하고 오류없이 실행하고 원하는 결과를 생산하고 있습니다. 챠오
 
안녕하세요, 변수를 전달하지 않고 1 또는 0 값을 전달하는 방법이 있습니까?
 
예, 값이 아닌 참조에 의해 그것을 전달한다. [코드] 메인 (무효) {동안 (1) {TaskLedUno ((BOOL) 1); / / 또는 / / TaskLedUno (TRUE);}} 무효 TaskLedUno (BOOL FlagLed) {없어져야 BOOL; / /를하면서 (1) { Bled 호텔 = FlagLed; pLED_1 (없어져야);}} [/CODE]는 당신이 상수 또는 리터럴, "& (BOOL) 1,"대부분의 컴파일러의 주소를 전달하려고하는 경우, 벌크 것입니다. 게다가, 루틴을 갖는 지점은 무엇입니까 "무효 TaskLedUno (무효 * pFlagLed),"당신이 실제 코드에서 정적 상태를 강제로 가는데있다면? 당신은뿐만 아니라이 루틴을 정의 수도 "무효 LedOn (무효) '및'무효 LedOff (무효)." 정보가 도움이되면 좋겠구나. 챠오
 
왜 그냥 간단하지? 무효 TaskLEDUno (온 불), 당신은 LED 켜고 전화 TaskLEDUno (1) 및 LED 전화 TaskLEDUno (0) 해제하려면 다음과 같이하십시오.
 
[인용 = 스카이 하이, 914888] 왜 그냥 간단하지? 무효 TaskLEDUno (온 불). 당신은 LED 켜고 전화 TaskLEDUno (1) 및 LED 전화 TaskLEDUno (0) [/ 견적] 예을 해제하려는 경우. 제가 이전에 게시된 값 예제로 통과 참조 포스트 # 4, 정확히 기능입니다. 그러나, 당신의 정확한 스카이 하이는 Tebron의 프로그램은 매우 신중한 사용 증명하지 않는 "무효를 *." 그러나,에 대한 Tebron의 향후 계획 "무효 TaskLedUno을 (무효 * pFlagLed)"루틴, 내가의 사용에 관한 내 판단 보류 거라고 "무효를 *."모르고 Tebron 나중에 통과한다면 사물의 큰 계획에 '무효 TaskLedUno을 (무효 * pFlagLed) "다른 루틴에서 함수 포인터로, 다음은 이해합니다.
 

Welcome to EDABoard.com

Sponsor

Back
Top