Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Dec 2022 02:15:33 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 268310] add sizeof(7) man page
Message-ID:  <bug-268310-227-ipiDxTCkSV@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-268310-227@https.bugs.freebsd.org/bugzilla/>
References:  <bug-268310-227@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D268310

--- Comment #7 from jschauma@netmeister.org ---
Here you go:

--- in-tree.txt 2022-12-19 21:13:16.000000000 -0500
+++ sizeof.7    2022-12-19 21:14:16.000000000 -0500
@@ -1,6 +1,5 @@
 .\"
 .\" Copyright (C) 2022 Jan Schaumann <jschauma@netmeister.org>.
-.\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
@@ -35,17 +34,30 @@
 .br
 .Nm Vt expression
 .Sh DESCRIPTION
-The size of primitive data types in C may differ
-across hardware platforms and implementations.
-It may be necessary or useful for a program to be able
-to determine the storage size of a data type or object.
-.Pp
 The unary
 .Nm
 operator yields the storage size of an expression or
-data type in
+data type in bytes.
+.Sh DETAILS
+The size of data types in C (such as e.g., integers or
+pointers) may differ across hardware platforms and
+implementations.
+For example, systems on which integers, longs, and
+pointers are using 32 bits (e.g., i386) are referred
+to as using the "ILP32" data model, systems using
+64 bit longs and pointers (e.g., amd64 / x86_64)
+as the "LP64" data model.
+.Pp
+As it may be necessary or useful for a program to be able
+to determine the storage size of a data type or
+object,
+.Nm
+yields that size in
 .Em char sized units .
-As a result, 'sizeof(char)' is always guaranteed to be 1.
+As a result,
+.Pf ' Vt sizeof(char) Ns '
+is always guaranteed to be
+1.
 (The number of bits per
 .Vt char
 is given by the
@@ -59,13 +71,6 @@
 .In sys/param.h
 header.)
 .Sh EXAMPLES
-Different platforms may use different data models.
-For example, systems on which integers, longs, and
-pointers are using 32 bits (e.g., i386) are referred
-to as using the "ILP32" data model, systems using
-64 bit longs and pointers (e.g., amd64 / x86_64)
-as the "LP64" data model.
-.Pp
 The following examples illustrate the possible results
 of calling
 .Nm
@@ -129,7 +134,7 @@
 .Pp
 When applied to a struct or union,
 .Nm
-returns the total number of units in the object,
+returns the total number of bytes in the object,
 including any internal or trailing padding used to
 align the object in memory.
 This result may thus be larger than if the storage
@@ -229,7 +234,7 @@
 Many systems provide this shortcut as the macro
 .Dv ntimes()
 via the
-.In sys/param.h
+.Dv sys/param.h
 header file.
 .Sh RESULT
 The result of the
@@ -252,8 +257,10 @@
 .Ed
 .Pp
 In that case, the operator will return the storage
-size of the pointer ('sizeof(char *)'), not the
-allocated memory!
+size of the pointer
+.Pf (' Vt sizeof(char *) Ns '),
+not the
+allocated memory.
 .Pp
 .Nm
 determines the
@@ -270,6 +277,11 @@
 preprocessor, the
 .Nm
 operator cannot be used in a preprocessor expression.
+.Pp
+The
+.Nm
+operator cannot be used on a bit-field object, a
+function type, or an incomplete type.
 .Sh SEE ALSO
 .Xr arch 7 ,
 .Xr operator 7

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-268310-227-ipiDxTCkSV>