바이트 배열을 사용하는 소규모 네트워킹 응용 프로그램을 만들고 있습니다. 전통적으로 이것들은 char buf[] = ...
과 같은 것으로 선언 될 것입니다.C : uint8_t로 바이트 배열 선언시 문제가 있습니까?
이것은 대부분의 자습서에서 (아직?) 완료된 것처럼 보이지만 실제로 배열이 인쇄되도록 시도 할 때 모든 문자가 아니라는 것을 잊어 버리는 등의 문제가 있습니다. 보이는 문자입니다.
일부 사용자 have suggestedchars
을 더 이상 사용하지 말고 대신 uint8_t
을 사용하십시오. 나는 그것이 매우 매력적이라는 사실을 발견했다. 대부분은 암묵적인 것보다 암묵적인 것이 더 낫다는 원칙에있다.
따라서 이러한 종류의 배열을 uint8_t buf[] = ...
으로 선언하는 데 문제가 있습니까?
나에게 그것은 아무것도 잘못된 것 같습니다. char는 모든 플랫폼에 대해 8 비트 (1 바이트)로 'uint8_t'와 같이 정의됩니다. un 또는 signed의 유일한 차이점은 캐스팅하거나 int로 변환 할 때 부호 확장입니다. –
@PaulOgilvie - ('char'은 8 비트 임) 보장 할 수 없습니다. 압도적으로 공통적 인 예, 그렇지만 보장되지는 않습니다. –
char가 8 비트 (thanks @OliverCharlesworth) 인 경우 char가 필요한 경우 char을 사용해야하고 바이트가 requried 인 경우에는 uint8_t를 사용해야합니다. 예를 들어 네트워크 인터페이스에서, 예를 들어 문자 처리시). –