Với tiêu chuẩn C99 (cụ thể là dự thảo N1256 ), các quy tắc phụ thuộc vào loại chức năng: fprintf (printf, sprintf, ...) hoặc scanf.
Dưới đây là các phần có liên quan được trích xuất:
Lời tựa
Phiên bản thứ hai này hủy bỏ và thay thế phiên bản đầu tiên, ISO / IEC 9899: 1990, được sửa đổi và sửa chữa bởi ISO / IEC 9899 / COR1: 1994, ISO / IEC 9899 / AMD1: 1995 và ISO / IEC 9899 / COR2: 1996. Những thay đổi lớn từ phiên bản trước bao gồm:
%lf chỉ định chuyển đổi được phép trong printf
7.19.6.1 fprintfHàm
7 Các sửa đổi độ dài và ý nghĩa của chúng là:
l (ell) Chỉ định rằng (...) không có hiệu lực đối với chỉ định chuyển đổi a, A, e, E, f, F, g hoặc G.
L Chỉ định rằng một chỉ định chuyển đổi a, A, e, E, f, F, g hoặc G sau áp dụng cho một đối số kép dài.
Các quy tắc tương tự được chỉ định để fprintfáp dụng cho printf, sprintfvà các chức năng tương tự.
7.19.6.2 fscanfHàm
11 Các sửa đổi độ dài và ý nghĩa của chúng là:
l (ell) Chỉ định rằng (...) rằng a sau a, A, e, E, f, F, g hoặc G chỉ định chuyển đổi áp dụng cho một đối số có con trỏ kiểu gấp đôi;
L Chỉ định rằng một chỉ định chuyển đổi a, A, e, E, f, F, g hoặc G sau áp dụng cho một đối số có con trỏ kiểu để nhân đôi dài.
12 Các chỉ định chuyển đổi và ý nghĩa của chúng là: a, e, f, g Ghép một số dấu phẩy động được ký tùy ý, (...)
14 Các chỉ định chuyển đổi A, E, F, G và X cũng hợp lệ và hoạt động tương tự như, a, e, f, g và x.
Câu chuyện dài, dành cho fprintfcác nhà đầu cơ sau đây và các loại tương ứng được chỉ định:
%f -> gấp đôi
%Lf -> dài gấp đôi.
và cho fscanfnó là:
%f -> phao
%lf -> gấp đôi
%Lf -> dài gấp đôi.
"%lf"không xác định; trong các thư viện C99 và C11, nó được định nghĩa giống như"%f".