>

(잠재적 과부하) 기능이 있습니다 :

write(uint16_t index, uint16_t subindex, uint8_t  data)
write(uint16_t index, uint16_t subindex, uint16_t data)
write(uint16_t index, uint16_t subindex, uint32_t data)
write(uint16_t index, uint16_t subindex, float    data)

예를 들어 typedef unsigned short int uint16_t; 를 보여주는 이클립스에도 불구하고  내가 uint16_t 를 가리키면 오류가 발생했습니다 :

call of overloaded ‘`write(int, int, int)`’ is ambiguous

데이터가 uint8_t 라면 알아야 할 함수 내부 uint16_t

어떻게해야합니까? 예를 들어 다른 방법이 있습니까?      write(uint16_t index, uint16_t subindex, int data, enum type)  ?

  • 답변 # 1

    컴파일러는 어떤 버전의 함수를 호출할지 모르기 때문에 호출이 모호합니다. 예를 들어 다음과 같은 사용법 :

    write(1, 2, 3);
    
    

    와이즈 비는 무엇인가 ? 그것은 3 가 될 수 있습니다  또는 uint8_t  또는 다른 사람 ...

    추측하고 잠재적으로 미친 짓을하는 대신, 컴파일러는 알 수 없다고 알려줍니다. 여러 가지 방법으로이 문제를 해결할 수 있습니다.

    <올>

    예를 들어, 함수의 고유 이름을 정의하십시오. 와이즈 비즈

    함수를 사용할 때 호출 할 대상을 정확하게 지정하십시오. uint16_t

    writeUInt8t(... , uint8_t in)

  • 이전 typescript - 마스터 임포트 파일이있는 Angular 2+
  • 다음 aggregate - Spark에서 큐브에없는 열 선택