Vector bundles (and thus their associated principal bundles) can be examined using **characteristic classes**. For a given vector bundle \({(E,M,\mathbb{K}^{n})}\) these are elements in the cohomology groups of the base space \({c(E)\in H^{\ast}(M;R)}\), for some commutative unital ring \({R}\), which commute with the pullback of any \({f\colon N\rightarrow M}\):

\(\displaystyle c\left(f^{*}\left(E\right)\right)=f^{*}\left(c\left(E\right)\right) \)

In the second term, the pullback by \({f}\) means that \({f^{*}\left(c\left(E\right)\right)\in H^{\text{*}}(N;R)}\). Since a trivial vector bundle \({M\times\mathbb{K}^{n}}\) is the pullback of \({(E,0,\mathbb{K}^{n})}\) by \({f\colon M\rightarrow0}\) (where \({0}\) is the space with a single point), we have \({c\left(M\times\mathbb{K}^{n}\right)=c\left(f^{*}\left(E\right)\right)=f^{*}\left(c\left(E\right)\right)=0}\) (where \({0}\) is the ring zero). Therefore the characteristic classes of a trivial bundle vanish, or in other words a characteristic class acts as an **obstruction** to a bundle being trivial. However there exist non-trivial bundles whose characteristic classes also all vanish. Similarly, if two vector bundles with the same base space are isomorphic, then they are related by the identity pullback; thus a necessary (but not sufficient) condition for isomorphism is identical characteristic classes. All characteristic classes can be determined via the cohomology classes of the classifying spaces \({BO(n)}\) and \({BU(n)}\), since e.g. for real vector bundles any \({(E,M,\mathbb{R}^{n})}\) is the pullback of \({BO(n)}\) by some \({f}\), so that we have \({c\left(E\right)=c\left(f^{*}\left(BO(n)\right)\right)=f^{*}\left(c\left(BO(n)\right)\right)}\).

For a real vector bundle \({(E,M,\mathbb{R}^{n})}\) there are three kinds of characteristic classes (none of which we will define here): the **Stiefel-Whitney classes** \({w_{i}(E)\in H^{i}(M;\mathbb{Z}_{2})}\), the **Pontryagin classes** \({p_{i}(E)\in H^{4i}(M;\mathbb{Z})}\), and if the bundle is oriented the **Euler class** \({e(E)\in H^{n}(M;\mathbb{Z})}\). For complex vector bundles, there are the **Chern classes** \({c_{i}(E)\in H^{2i}(M;\mathbb{Z})}\). The characteristic class of a manifold \({M}\) is defined to be that of its tangent bundle, e.g.

\(\displaystyle w_{i}(M)\equiv w_{i}(TM). \)

If \({M}\) is a compact orientable four-dimensional manifold, then it is parallelizable iff \({w_{2}(M)=p_{1}(M)=e(M)=0}\).

A non-zero Stiefel-Whitney class \({w_{i}(E)}\) acts as an obstruction to the existence of \({(n-i+1)}\) everywhere linearly independent sections of \({E}\). Therefore, if such section do exist, then \({w_{j}(E)}\) vanishes for \({j\geq i}\); in particular, a non-zero \({w_{n}(E)}\) means there are no non-vanishing global sections. It can be shown that \({w_{1}(E)=0}\) iff \({E}\) is orientable, so that \({M}\) is orientable iff \({w_{1}(M)=0}\).

Spin structures exist on an oriented \({M}\) iff \({w_{2}(M)=0}\); if spin structures do exist, then their equivalency classes have a one-to-one correspondence with the elements of \({H^{1}(M,\mathbb{Z}_{2})}\). Inequivalent spin structures have either inequivalent spin frame bundles or inequivalent bundle maps; in four dimensions, there is only one spin frame bundle up to isomorphism, so that different spin structures correspond to different bundle maps (i.e. different spin connections).

Spin^{c} structures exist on an oriented \({M}\) if spin structures exist, but also in some cases where they do not; for example if \({M}\) is simply connected and compact. If spin^{c} structures do exist, then their equivalency classes have a one-to-one correspondence with the elements of \({H^{2}(M,\mathbb{Z})}\), and in four dimensions, unlike the case for spin structures, inequivalent spin^{c} structures can have inequivalent spin frame bundles.