According to book of Eisenbud-Harris Page 332 and the following summary http://pbelmans.ncag.info/blog/2014/10/09/what-are-chern-classes/ one can describe Chern classes in terms of degeneracy loci.

Quote from the link: "*Recall that we were trying to measure in which sense a vector bundle is non-trivial, and for ease of statement we will assume that our vector bundle is globally generated. If $r$ is the rank, then for any $k=1,\ldots,r$ we can consider global sections $s_1,\ldots,s_{r−k+1}$. If we evaluate these in a point we get $r−k+1$ vectors of length $r$, hence we can ask whether these are linearly (in)dependent. The degeneracy locus of our set of global sections is then exactly the set of points in which the evaluations become linearly dependent, hence they degenerate.
Of course one has to choose these sections sufficiently generally in order to make the codimension of the degeneracy locus correct, but one can prove that if the codimension is correct and the vector bundle is globally generated, then the degeneracy locus is independent of the choice! This can then be one way of defining the Chern classes of a vector bundle.*"

**Question**: In the case of smooth complex vector bundles, there are plenty of generic sections, so I was wondering if the argument has an analogue in the smooth case (i.e. if it is written with details somewhere).