What's the difference between CLongDouble and Double?
According to Apple document, CLongDouble is an alias of Double. However, when I run the following code, I get different max number results.
Right. CLongDouble should be whatever type long double is in clang on the target platform. In particular, when targeting x86_64 on Linux or macOS, it is Float80, but when targeting arm64 on macOS, it is Double. The documentation site that you linked to doesn't handle per-arch differences in definitions or availability (see also CFloat16, which doesn't exist on macOS/x86_64), but this is documented (somewhat tersely) in the source.