This commit is contained in:
Kagura 2024-07-01 21:45:28 +08:00
parent 161bd48446
commit 76fb6d383b
2 changed files with 10 additions and 10 deletions

Binary file not shown.

View file

@ -274,9 +274,10 @@ frac \(\ne 00\dots0\) 表示 NaN
\end{tabular} \end{tabular}
\end{table} \end{table}
\vspace{-3em} \vspace{-2em}
\section{链接} \section{链接}
\vspace{-1em}
\subsection{符号表 (.symtab)} \subsection{符号表 (.symtab)}
\vspace{-1em} \vspace{-1em}
\begin{table}[h] \begin{table}[h]
@ -284,29 +285,28 @@ frac \(\ne 00\dots0\) 表示 NaN
\hline \hline
C语言表示 & 类型 & 符号强度 && 说明\\ \hline C语言表示 & 类型 & 符号强度 && 说明\\ \hline
\texttt{void swap();} & 全局 && \texttt{.text} & 非静态函数 \\ \hline \texttt{void swap();} & 全局 && \texttt{.text} & 非静态函数 \\ \hline
\texttt{int a = 0;} & 全局 && \texttt{.bss} & 初始化为 0 的全局变量 \\ \hline
\texttt{int *bufp0 = \&buf[0]} & 全局 && \texttt{.data} & 初始化为其他值的全局变量\\ \hline \texttt{int *bufp0 = \&buf[0]} & 全局 && \texttt{.data} & 初始化为其他值的全局变量\\ \hline
\texttt{int a = 0;} & 全局 && \texttt{.bss} & 初始化为 0 的全局变量 \\ \hline
\texttt{int *bufp1;} & 全局 && \texttt{COMMON} & 未初始化的全局变量 \\ \hline \texttt{int *bufp1;} & 全局 && \texttt{COMMON} & 未初始化的全局变量 \\ \hline
\texttt{extern int buf[];} & 外部 & --- & \texttt{UNDEF} & \makecell[l]{ \texttt{extern int buf[];} & 外部 & --- & \texttt{UNDEF} & \makecell[l]{
未解析的引用符号 \\ 未解析的引用符号 \\
位于实际定义所在位置 位于实际定义所在位置
} \\ \hline } \\ \hline
\begin{lstlisting}[language=C,gobble=8]
void p() {
static int i;
static int j = 0; }
\end{lstlisting}
& 局部 & --- & \texttt{.bss} & \makecell[l]{未初始化的静态局部变量 \\ 初始化为 0 的静态局部变量} \\ \hline
\begin{lstlisting}[language=C,gobble=8] \begin{lstlisting}[language=C,gobble=8]
void p() { void p() {
static int i = 1; } static int i = 1; }
\end{lstlisting} \end{lstlisting}
& 局部 & --- & \texttt{.data} & 初始化为其他值的静态局部变量 \\ \hline & 局部 & --- & \texttt{.data} & 初始化为其他值的静态局部变量 \\ \hline
\begin{lstlisting}[language=C,gobble=8] \begin{lstlisting}[language=C,gobble=8]
void q() { void p() { static int i;
static int j = 0; }
\end{lstlisting}
& 局部 & --- & \texttt{.bss} & \makecell[l]{未初始化的静态局部变量 \\ 初始化为 0 的静态局部变量} \\ \hline
\begin{lstlisting}[language=C,gobble=8]
static void q() {
int j = 2; } int j = 2; }
\end{lstlisting} \end{lstlisting}
& 都不是 & --- & 在栈上 & 链接不涉及非静态局部变量 \\ \hline & --- & --- & --- & \makecell[l]{链接不涉及静态函数\\链接不涉及非静态局部变量} \\ \hline
\end{tabular} \end{tabular}
\end{table} \end{table}
\vspace{-2em} \vspace{-2em}