Good question. Technically, all 3 are DIFFERENT. G_c and G_d are equivalent in terms of how close their responses might be.
- G_c is a continuous time transfer function (so, defined in the 's' domain).
-- This takes numerator and denominator coefficients and add its to a polynomial in 's' in descending powers.
- G_e is a discrete time transfer function (so, defined in the 'z' domain).
-- This takes numerator and denominator coefficients and add its to a polynomial in 'z' in descending powers. (There is no conversion from continuous to discrete happening. You are basically just constructing a discrete tf with coefficients)
- G_d is a discrete time transfer function (also defined in the 'z' domain).
-- c2d function takes a continuous time transfer function and then discretizes it (using the user chosen method such as 'zoh', 'tustin' etc). This is what you should use to convert a transfer function in the 's' domain to a 'z' domain.