나 상황을 설명하자 다음과 같이 나는 C 구조체를 가지고 :적응 형과 함께 printf() 함수를 사용하는 방법은 무엇입니까?
이 구조로 채울 수 있습니다typedef struct {
int *val;
char *name;
} tStruct;
은 다음과 같습니다 -은 "발"값을 사용할 수없는 경우 발 달리, 발 null도 가능 정수 값 (음수 일 수 있음) - 이름을 사용할 수없는 경우 이름은 빈 문자열이거나 이름을 사용할 수있는 경우 채워진 문자열 (여기에는 널 포인터가 아님)이 될 수 있습니다.
나는 다음과 같이 로그 라인을 작성하고자 :
- 발가 무효 인 경우, 이름이 유효 (우트와 동일) :
LOG의 발 = # 이름 = 우트
을
- 값이 잘못되면 이름이 잘못되었습니다.
LOG의 발 = # 이름 = #은
- 발이 유효한 경우, 이름이 잘못되었습니다 :
LOG의 발 = 123456 이름 = #
- val이 유효하면 name이 유효합니다 (equals 우트) :
LOG의 발 = 123456 이름 = 우트
이 내가의 printf ("발 = %의 이름 = % s '에 하나를 사용해야 할 것입니다 의미, ...) 또는 id 값에 따라 printf ("val = % d name = % s", ...)를 사용하여 # 또는 정수를 출력 할 수 있습니다. val이 유효하지 않은 경우 위조 된 정수 값을 출력하는 것은 적합하지 않습니다. 이는 부호가 있거나 부호가없는 값이 가능하기 때문입니다.
아이디어가 있으십니까?
if ((struct.val == NULL) && (struct.name)) then printf ("val=# name=%");
else if ((struct.val == NULL) && (! struct.name)) then printf ("val=# name=#");
else if ...
주셔서 감사합니다
'% #'을 (를) 의미하지 않는다고 생각합니다. 즉 '#'즉 형식 지정자가 없어야합니다. – unwind
예, 당신은이 일에 대해 미안합니다. 수정 해 주셔서 감사합니다! – SCO