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).
Spinc 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 spinc 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 spinc structures can have inequivalent spin frame bundles.